import React from "react"; import ApolloClient from "apollo-client"; import { MutationHookOptions } from "@apollo/react-hooks"; import { PageBuilderContext } from "../../contexts/PageBuilder"; import { AsyncProcessor } from "@webiny/utils"; export declare const AdminPageBuilderContext: React.Context; interface Page { id: string; } interface MutationPageOptions { mutationOptions?: MutationHookOptions; client: ApolloClient; } export type PublishPageOptions = MutationPageOptions; export type UnpublishPageOptions = MutationPageOptions; export type DeletePageOptions = MutationPageOptions; export interface AdminPageBuilderContext extends PageBuilderContext { publishPage: (page: Page, options: PublishPageOptions) => Promise; onPagePublish: (fn: OnPagePublishSubscriber) => () => void; unpublishPage: (page: Page, options: UnpublishPageOptions) => Promise; onPageUnpublish: (fn: OnPageUnpublishSubscriber) => () => void; deletePage: (page: Page, options: DeletePageOptions) => Promise; onPageDelete: (fn: OnPageDeleteSubscriber) => () => void; client: ApolloClient; } type OnPagePublishSubscriber = AsyncProcessor; type OnPageUnpublishSubscriber = AsyncProcessor; type OnPageDeleteSubscriber = AsyncProcessor; interface PageError { message: string; code: string; data: Record; } interface OnPagePublish { page: Page; options: PublishPageOptions; error?: PageError; } type OnPageUnpublish = OnPagePublish; type OnPageDelete = OnPagePublish; interface AdminPageBuilderContextProviderProps { children: React.ReactNode; } export declare const AdminPageBuilderContextProvider: ({ children }: AdminPageBuilderContextProviderProps) => React.JSX.Element; export {};