// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

[
  {
    "namespace": "bookmarkManagerPrivate",
    "description": "none",
    "nodoc": true,
    "types": [
      {
        "id": "BookmarkNodeDataElement",
        "nodoc": true,
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "optional": true,
            "description": "The ID of the bookmark. This is only provided if the data is from the same profile."
          },
          "parentId": {
            "type": "string",
            "optional": true,
            "description": "The ID of the parent of the bookmark. This is only provided if the data is from the same profile."
          },
          "title": {"type": "string"},
          "url": {
            "type": "string",
            "optional": true
          },
          "children": {
            "type": "array",
            "items": {"$ref": "BookmarkNodeDataElement"}
          }
        }
      },
      {
        "id": "BookmarkNodeData",
        "nodoc": true,
        "type": "object",
        "description": "Information about the drag and drop data for use with drag and drop events.",
        "properties": {
          "sameProfile": {"type": "boolean"},
          "elements": {
            "type": "array",
            "items": {"$ref": "BookmarkNodeDataElement"}
          }
        }
      }
    ],
    "functions": [
      {
        "name": "copy",
        "type": "function",
        "description": "Copies the given bookmarks into the clipboard",
        "nodoc": "true",
        "parameters": [
          {
            "name": "idList",
            "description": "An array of string-valued ids",
            "type": "array",
            "items": {"type": "string"},
            "minItems": 1
          },
          {"type": "function", "name": "callback", "optional": true, "parameters": []}
        ]
      },
      {
        "name": "cut",
        "type": "function",
        "description": "Cuts the given bookmarks into the clipboard",
        "nodoc": "true",
        "parameters": [
          {
            "name": "idList",
            "description": "An array of string-valued ids",
            "type": "array",
            "items": {"type": "string"},
            "minItems": 1
          },
          {"type": "function", "name": "callback", "optional": true, "parameters": []}
        ]
      },
      {
        "name": "paste",
        "type": "function",
        "description": "Pastes bookmarks from the clipboard into the parent folder after the last selected node",
        "nodoc": "true",
        "parameters": [
          {"type": "string", "name": "parentId"},
          {
            "name": "selectedIdList",
            "description": "An array of string-valued ids for selected bookmarks",
            "optional": true,
            "type": "array",
            "items": {"type": "string"},
            "minItems": 0
          },
          {"type": "function", "name": "callback", "optional": true, "parameters": []}
        ]
      },
      {
        "name": "canPaste",
        "type": "function",
        "description": "Whether there are any bookmarks that can be pasted",
        "nodoc": "true",
        "parameters": [
          {"type": "string", "name": "parentId", "description": "The ID of the folder to paste into"},
          {"type": "function", "name": "callback", "parameters": [
            {"name": "result", "type": "boolean"}
          ]}
        ]
      },
      {
        "name": "sortChildren",
        "type": "function",
        "description": "Sorts the children of a given folder",
        "nodoc": "true",
        "parameters": [
          {"type": "string", "name": "parentId", "description": "The ID of the folder to sort the children of"}
        ]
      },
      {
        "name": "getStrings",
        "type": "function",
        "description": "Gets the i18n strings for the bookmark manager",
        "nodoc": "true",
        "parameters": [
          {
            "type": "function",
             "name": "callback",
             "parameters": [
              {
                "name": "result",
                "type": "object",
                "additionalProperties": {"type": "string"}
              }
            ]
          }
        ]
      },
      {
        "name": "startDrag",
        "type": "function",
        "description": "Begins dragging a set of bookmarks",
        "nodoc": "true",
        "parameters": [
          {
            "name": "idList",
            "description": "An array of string-valued ids",
            "type": "array",
            "items": {"type": "string"},
            "minItems": 1
          }
        ]
      },
      {
        "name": "drop",
        "type": "function",
        "description": "Performs the drop action of the drag and drop session",
        "nodoc": "true",
        "parameters": [
          {
            "name": "parentId",
            "description": "The ID of the folder that the drop was made",
            "type": "string"
          },
          {
            "name": "index",
            "description": "The index of the position to drop at. If left out the dropped items will be placed at the end of the existing children",
            "type": "integer",
            "minimum": 0,
            "optional": true
          }
        ]
      },
      {
        "name": "getSubtree",
        "type": "function",
        "description": "Retrieves a bookmark hierarchy from the given node.  If the node id is empty, it is the full tree.  If foldersOnly is true, it will only return folders, not actual bookmarks.",
        "nodoc": "true",
        "parameters": [
          {
            "name": "id",
            "type": "string",
            "description": "ID of the root of the tree to pull.  If empty, the entire tree will be returned."
          },
          {
            "name": "foldersOnly",
            "type": "boolean",
            "description": "Pass true to only return folders."
          },
          {
            "name": "callback",
            "type": "function",
            "parameters": [
              {"name": "results", "type": "array", "items": { "$ref": "bookmarks.BookmarkTreeNode"} }
            ]
          }
        ]
      },
      {
        "name": "canEdit",
        "type": "function",
        "description": "Whether bookmarks can be modified",
        "nodoc": "true",
        "parameters": [
          {"type": "function", "name": "callback", "parameters": [
            {"name": "result", "type": "boolean"}
          ]}
        ]
      },
      {
        "name": "canOpenNewWindows",
        "type": "function",
        "description": "Whether bookmarks can be opened in new windows",
        "nodoc": "true",
        "parameters": [
          {"type": "function", "name": "callback", "parameters": [
            {"name": "result", "type": "boolean"}
          ]}
        ]
      },
      {
        "name": "removeTrees",
        "type": "function",
        "description": "Recursively removes list of bookmarks nodes.",
        "nodoc": "true",
        "parameters": [
          {
            "name": "idList",
            "description": "An array of string-valued ids",
            "type": "array",
            "items": {"type": "string"},
            "minItems": 1
          },
          {"type": "function", "name": "callback", "optional": true, "parameters": []}
        ]
      },
      {
        "name": "recordLaunch",
        "type": "function",
        "description": "",
        "nodoc": "true",
        "parameters": []
      }
    ],
    "events": [
      {
        "name": "onDragEnter",
        "type": "function",
        "description": "Fired when dragging bookmarks over the document",
        "parameters": [
          {"name": "bookmarkNodeData", "$ref": "BookmarkNodeData"}
        ]
      },
      {
        "name": "onDragLeave",
        "type": "function",
        "description": "Fired when the drag and drop leaves the document",
        "parameters": [
          {"name": "bookmarkNodeData", "$ref": "BookmarkNodeData"}
        ]
      },
      {
        "name": "onDrop",
        "type": "function",
        "description": "Fired when the user drops bookmarks on the document",
        "parameters": [
          {"name": "bookmarkNodeData", "$ref": "BookmarkNodeData"}
        ]
      }
    ]
  }
]
