chromium/chrome/browser/extensions/api/bookmarks/bookmarks_api.h

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

#ifndef CHROME_BROWSER_EXTENSIONS_API_BOOKMARKS_BOOKMARKS_API_H_
#define CHROME_BROWSER_EXTENSIONS_API_BOOKMARKS_BOOKMARKS_API_H_

#include <stdint.h>

#include <memory>
#include <set>
#include <string>
#include <vector>

#include "base/memory/raw_ptr.h"
#include "base/memory/ref_counted.h"
#include "base/values.h"
#include "chrome/browser/extensions/api/bookmarks_core/bookmarks_function.h"
#include "extensions/browser/browser_context_keyed_api_factory.h"
#include "extensions/browser/event_router.h"
#include "extensions/browser/extension_function.h"
#include "ui/shell_dialogs/select_file_dialog.h"

class Profile;

namespace base {
class FilePath;
}

namespace bookmarks {
class BookmarkNode;
class BookmarkModel;
class ManagedBookmarkService;
}

namespace content {
class BrowserContext;
}

namespace extensions {

namespace api::bookmarks {
struct CreateDetails;
}  // namespace api::bookmarks

// Observes BookmarkModel and then routes the notifications as events to
// the extension system.
class BookmarkEventRouter : public bookmarks::BookmarkModelObserver {};

class BookmarksAPI : public BrowserContextKeyedAPI,
                     public EventRouter::Observer {};

class BookmarksGetFunction : public BookmarksFunction {};

class BookmarksGetChildrenFunction : public BookmarksFunction {};

class BookmarksGetRecentFunction : public BookmarksFunction {};

class BookmarksGetTreeFunction : public BookmarksFunction {};

class BookmarksGetSubTreeFunction : public BookmarksFunction {};

class BookmarksSearchFunction : public BookmarksFunction {};

class BookmarksRemoveFunctionBase : public BookmarksFunction {};

class BookmarksRemoveFunction : public BookmarksRemoveFunctionBase {};

class BookmarksRemoveTreeFunction : public BookmarksRemoveFunctionBase {};

class BookmarksCreateFunction : public BookmarksFunction {};

class BookmarksMoveFunction : public BookmarksFunction {};

class BookmarksUpdateFunction : public BookmarksFunction {};

}  // namespace extensions

#endif  // CHROME_BROWSER_EXTENSIONS_API_BOOKMARKS_BOOKMARKS_API_H_