import { PageType, Portal, PortalType } from '../API';
import { ApolloClientService, CRUDService, ICrudService } from '../core';
import { MenuButtonService } from './menu-button.service';
import { PageService } from './page.service';
export declare class PortalService extends CRUDService<Portal> {
    protected hasOneModels: ICrudService<Portal>['hasOneModels'];
    private pageService;
    private menuButtonService;
    constructor(client: ApolloClientService, pageService: PageService, menuButtonService: MenuButtonService);
    get create(): ({ title, ...props }: Partial<Record<"buttons" | "hostMaps" | "surveys" | "portalAccessGrants", import("../../..").ModelWithId[]> & Record<import("../core").HasOneRelationsOf<Portal>, import("../../..").ModelWithId>> & Omit<import("../API").CreatePortal, "buttons" | "hostMaps" | "surveys" | "portalAccessGrants" | import("../core").HasOneRelationsOf<Portal>>, options?: import("../core").MutationOptionsWithoutMutation<import("@graphql-typed-document-node/core").TypedDocumentNode<import("../API").CreateOnePortalMutation, import("../API").Exact<{
        input: import("../API").CreatePortal;
    }>>>) => Promise<{
        __typename?: "Portal";
        id: string;
        backgroundColor?: string;
        backgroundImage?: string;
        created_at: any;
        description: string;
        fontColor?: string;
        isPublic?: boolean;
        portalType?: PortalType;
        organizationID: string;
        parativeBadge?: boolean;
        title: string;
        updated_at: any;
        portalThemeID?: string;
        primaryOrSecondary?: import("../API").SecondaryOrPrimary;
        headerTheme?: import("../API").PortalHeaderTheme;
        cname?: string;
        buttons?: {
            __typename?: "MenuButton";
            id: string;
            cta?: string;
            color?: string;
            action?: string;
            description?: string;
            link?: string;
            feedID?: string;
            hasDivider?: boolean;
            index?: number;
            inputLabel?: string;
            portalID?: string;
            organizationID: string;
            isPageRoot?: boolean;
            buttonEmoji?: string;
            pageID?: string;
            menuID?: string;
            customThankYouMessage?: string;
            customWelcomeMessage?: string;
            forms?: {
                __typename?: "Form";
                id: string;
                name: string;
            }[];
            feeds?: {
                __typename?: "Feed";
                id: string;
                name: string;
            }[];
            page?: {
                __typename?: "Page";
                id: string;
                description?: string;
                title?: string;
                pageType?: PageType;
            };
        }[];
    }>;
    createCustomerPortal: (input: Parameters<typeof this.create>[0], options: Parameters<typeof this.create>[1]) => Promise<{
        __typename?: "Portal";
        id: string;
        backgroundColor?: string;
        backgroundImage?: string;
        created_at: any;
        description: string;
        fontColor?: string;
        isPublic?: boolean;
        portalType?: PortalType;
        organizationID: string;
        parativeBadge?: boolean;
        title: string;
        updated_at: any;
        portalThemeID?: string;
        primaryOrSecondary?: import("../API").SecondaryOrPrimary;
        headerTheme?: import("../API").PortalHeaderTheme;
        cname?: string;
        buttons?: {
            __typename?: "MenuButton";
            id: string;
            cta?: string;
            color?: string;
            action?: string;
            description?: string;
            link?: string;
            feedID?: string;
            hasDivider?: boolean;
            index?: number;
            inputLabel?: string;
            portalID?: string;
            organizationID: string;
            isPageRoot?: boolean;
            buttonEmoji?: string;
            pageID?: string;
            menuID?: string;
            customThankYouMessage?: string;
            customWelcomeMessage?: string;
            forms?: {
                __typename?: "Form";
                id: string;
                name: string;
            }[];
            feeds?: {
                __typename?: "Feed";
                id: string;
                name: string;
            }[];
            page?: {
                __typename?: "Page";
                id: string;
                description?: string;
                title?: string;
                pageType?: PageType;
            };
        }[];
    }>;
    get useCreate(): (options?: import("../core").CacheUpdateOptions<import("../core").ServiceMutationHookOptions<import("@graphql-typed-document-node/core").TypedDocumentNode<import("../API").CreateOnePortalMutation, import("../API").Exact<{
        input: import("../API").CreatePortal;
    }>>>>) => [(payload: import("../core").InputAndRelations<import("@graphql-typed-document-node/core").TypedDocumentNode<import("../API").CreateOnePortalMutation, import("../API").Exact<{
        input: import("../API").CreatePortal;
    }>>, Portal>) => Promise<{
        __typename?: "Portal";
        id: string;
        backgroundColor?: string;
        backgroundImage?: string;
        created_at: any;
        description: string;
        fontColor?: string;
        isPublic?: boolean;
        portalType?: PortalType;
        organizationID: string;
        parativeBadge?: boolean;
        title: string;
        updated_at: any;
        portalThemeID?: string;
        primaryOrSecondary?: import("../API").SecondaryOrPrimary;
        headerTheme?: import("../API").PortalHeaderTheme;
        cname?: string;
        buttons?: {
            __typename?: "MenuButton";
            id: string;
            cta?: string;
            color?: string;
            action?: string;
            description?: string;
            link?: string;
            feedID?: string;
            hasDivider?: boolean;
            index?: number;
            inputLabel?: string;
            portalID?: string;
            organizationID: string;
            isPageRoot?: boolean;
            buttonEmoji?: string;
            pageID?: string;
            menuID?: string;
            customThankYouMessage?: string;
            customWelcomeMessage?: string;
            forms?: {
                __typename?: "Form";
                id: string;
                name: string;
            }[];
            feeds?: {
                __typename?: "Feed";
                id: string;
                name: string;
            }[];
            page?: {
                __typename?: "Page";
                id: string;
                description?: string;
                title?: string;
                pageType?: PageType;
            };
        }[];
    }>, import("@apollo/client").MutationResult<{
        createOne: import("../../..").ModelWithId;
    }>];
    get update(): (input: Partial<Record<"buttons" | "hostMaps" | "surveys" | "portalAccessGrants", import("../../..").ModelWithId[]> & Record<import("../core").HasOneRelationsOf<Portal>, import("../../..").ModelWithId>> & Omit<import("../API").UpdatePortal, "buttons" | "hostMaps" | "surveys" | "portalAccessGrants" | import("../core").HasOneRelationsOf<Portal>> & {
        id: string;
    }, options?: import("../core").MutationOptionsWithoutMutation<import("@graphql-typed-document-node/core").TypedDocumentNode<import("../API").UpdateOnePortalMutation, import("../API").Exact<{
        input: import("../API").UpdateOnePortalInput;
    }>>>) => Promise<{
        __typename?: "Portal";
        id: string;
        backgroundColor?: string;
        backgroundImage?: string;
        created_at: any;
        description: string;
        fontColor?: string;
        isPublic?: boolean;
        portalType?: PortalType;
        organizationID: string;
        parativeBadge?: boolean;
        title: string;
        updated_at: any;
        portalThemeID?: string;
        primaryOrSecondary?: import("../API").SecondaryOrPrimary;
        headerTheme?: import("../API").PortalHeaderTheme;
        cname?: string;
        buttons?: {
            __typename?: "MenuButton";
            id: string;
            cta?: string;
            color?: string;
            action?: string;
            description?: string;
            link?: string;
            feedID?: string;
            hasDivider?: boolean;
            index?: number;
            inputLabel?: string;
            portalID?: string;
            organizationID: string;
            isPageRoot?: boolean;
            buttonEmoji?: string;
            pageID?: string;
            menuID?: string;
            customThankYouMessage?: string;
            customWelcomeMessage?: string;
            forms?: {
                __typename?: "Form";
                id: string;
                name: string;
            }[];
            feeds?: {
                __typename?: "Feed";
                id: string;
                name: string;
            }[];
            page?: {
                __typename?: "Page";
                id: string;
                description?: string;
                title?: string;
                pageType?: PageType;
            };
        }[];
    }>;
    get useUpdate(): (mainOptions?: import("../core").CacheUpdateOptions<import("../core").ServiceMutationHookOptions<import("@graphql-typed-document-node/core").TypedDocumentNode<import("../API").UpdateOnePortalMutation, import("../API").Exact<{
        input: import("../API").UpdateOnePortalInput;
    }>>>>) => [({ id, ...input }: Partial<Record<"buttons" | "hostMaps" | "surveys" | "portalAccessGrants", import("../../..").ModelWithId[]> & Record<import("../core").HasOneRelationsOf<Portal>, import("../../..").ModelWithId>> & import("../API").UpdatePortal & {
        id: string;
    }, options?: import("../core").CacheUpdateOptions<import("../core").ServiceMutationHookOptions<import("@graphql-typed-document-node/core").TypedDocumentNode<import("../API").UpdateOnePortalMutation, import("../API").Exact<{
        input: import("../API").UpdateOnePortalInput;
    }>>>>) => Promise<Record<string, unknown>>, import("@apollo/client").MutationResult<{
        updateOne: Record<string, unknown>;
    }>];
    get get(): (id: string, options?: Omit<import("@apollo/client").QueryOptions<import("../API").Exact<{
        id: string;
    }>, import("../API").GetPortalQuery>, "query">) => Promise<{
        __typename?: "Portal";
        id: string;
        backgroundColor?: string;
        backgroundImage?: string;
        created_at: any;
        description: string;
        fontColor?: string;
        isPublic?: boolean;
        portalType?: PortalType;
        organizationID: string;
        parativeBadge?: boolean;
        title: string;
        updated_at: any;
        portalThemeID?: string;
        primaryOrSecondary?: import("../API").SecondaryOrPrimary;
        headerTheme?: import("../API").PortalHeaderTheme;
        cname?: string;
        portalTheme: {
            __typename?: "PortalTheme";
            id: string;
            primaryColor?: string;
            secondaryColor?: string;
        };
        buttons?: {
            __typename?: "MenuButton";
            id: string;
            cta?: string;
            color?: string;
            action?: string;
            description?: string;
            link?: string;
            feedID?: string;
            hasDivider?: boolean;
            index?: number;
            inputLabel?: string;
            portalID?: string;
            organizationID: string;
            isPageRoot?: boolean;
            buttonEmoji?: string;
            pageID?: string;
            menuID?: string;
            customThankYouMessage?: string;
            customWelcomeMessage?: string;
            forms?: {
                __typename?: "Form";
                id: string;
                name: string;
            }[];
            feeds?: {
                __typename?: "Feed";
                id: string;
                name: string;
            }[];
            page?: {
                __typename?: "Page";
                id: string;
                description?: string;
                title?: string;
                pageType?: PageType;
            };
        }[];
    }>;
    get useGet(): (options: import("../core").ServiceQueryHookOptions<import("@graphql-typed-document-node/core").TypedDocumentNode<import("../API").GetPortalQuery, import("../API").Exact<{
        id: string;
    }>>>) => {
        isLoading: boolean;
        isRefetching: boolean;
        hasMore: any;
        refetching: boolean;
        client: import("@apollo/client").ApolloClient<any>;
        observable: import("@apollo/client").ObservableQuery<import("../API").GetPortalQuery, import("../API").Exact<{
            id: string;
        }>>;
        data: import("../API").GetPortalQuery;
        previousData?: import("../API").GetPortalQuery;
        error?: import("@apollo/client").ApolloError;
        errors?: readonly import("graphql").GraphQLFormattedError[];
        loading: boolean;
        networkStatus: import("@apollo/client").NetworkStatus;
        called: boolean;
        startPolling: (pollInterval: number) => void;
        stopPolling: () => void;
        subscribeToMore: <TSubscriptionData = import("../API").GetPortalQuery, TSubscriptionVariables extends import("@apollo/client").OperationVariables = import("../API").Exact<{
            id: string;
        }>>(options: import("@apollo/client").SubscribeToMoreOptions<import("../API").GetPortalQuery, TSubscriptionVariables, TSubscriptionData>) => () => void;
        updateQuery: <TVars extends import("@apollo/client").OperationVariables = import("../API").Exact<{
            id: string;
        }>>(mapFn: (previousQueryResult: import("../API").GetPortalQuery, options: Pick<import("@apollo/client").WatchQueryOptions<TVars, import("../API").GetPortalQuery>, "variables">) => import("../API").GetPortalQuery) => void;
        refetch: (variables?: Partial<import("../API").Exact<{
            id: string;
        }>>) => Promise<import("@apollo/client").ApolloQueryResult<import("../API").GetPortalQuery>>;
        reobserve: (newOptions?: Partial<import("@apollo/client").WatchQueryOptions<import("../API").Exact<{
            id: string;
        }>, import("../API").GetPortalQuery>>, newNetworkStatus?: import("@apollo/client").NetworkStatus) => Promise<import("@apollo/client").ApolloQueryResult<import("../API").GetPortalQuery>>;
        variables: import("../API").Exact<{
            id: string;
        }>;
        fetchMore: <TFetchData = import("../API").GetPortalQuery, TFetchVars extends import("@apollo/client").OperationVariables = import("../API").Exact<{
            id: string;
        }>>(fetchMoreOptions: import("@apollo/client").FetchMoreQueryOptions<TFetchVars, TFetchData> & {
            updateQuery?: (previousQueryResult: import("../API").GetPortalQuery, options: {
                fetchMoreResult: TFetchData;
                variables: TFetchVars;
            }) => import("../API").GetPortalQuery;
        }) => Promise<import("@apollo/client").ApolloQueryResult<TFetchData>>;
    };
    get delete(): (id: string, options?: import("../core").MutationOptionsWithoutMutation<import("@graphql-typed-document-node/core").TypedDocumentNode<import("../API").DeleteOnePortalMutation, import("../API").Exact<{
        input: import("../API").DeleteOnePortalInput;
    }>>>) => Promise<{
        __typename?: "PortalDeleteResponse";
        id?: string;
    }>;
    get useDelete(): (options?: import("../core").ServiceMutationHookOptions<import("@graphql-typed-document-node/core").TypedDocumentNode<import("../API").DeleteOnePortalMutation, import("../API").Exact<{
        input: import("../API").DeleteOnePortalInput;
    }>>>) => [(id?: string) => Promise<{
        __typename?: "PortalDeleteResponse";
        id?: string;
    }>, import("@apollo/client").MutationResult<import("../API").DeleteOnePortalMutation>];
    get list(): (input: import("../API").Exact<{
        filter?: import("../API").PortalFilter;
        paging?: import("../API").CursorPaging;
        sorting?: import("../API").PortalSort | import("../API").PortalSort[];
    }>, options?: import("../core").ServiceQueryOptions<import("@graphql-typed-document-node/core").TypedDocumentNode<import("../API").PortalListQuery, import("../API").Exact<{
        filter?: import("../API").PortalFilter;
        paging?: import("../API").CursorPaging;
        sorting?: import("../API").PortalSort | import("../API").PortalSort[];
    }>>>) => Promise<{
        __typename?: "PortalConnection";
        totalCount: number;
        edges: {
            __typename?: "PortalEdge";
            cursor: any;
            node: {
                __typename?: "Portal";
                id: string;
                backgroundColor?: string;
                backgroundImage?: string;
                created_at: any;
                description: string;
                fontColor?: string;
                isPublic?: boolean;
                portalType?: PortalType;
                organizationID: string;
                parativeBadge?: boolean;
                title: string;
                updated_at: any;
                portalThemeID?: string;
                primaryOrSecondary?: import("../API").SecondaryOrPrimary;
                headerTheme?: import("../API").PortalHeaderTheme;
                cname?: string;
                buttons?: {
                    __typename?: "MenuButton";
                    id: string;
                    cta?: string;
                    color?: string;
                    action?: string;
                    description?: string;
                    link?: string;
                    feedID?: string;
                    hasDivider?: boolean;
                    index?: number;
                    inputLabel?: string;
                    portalID?: string;
                    organizationID: string;
                    isPageRoot?: boolean;
                    buttonEmoji?: string;
                    pageID?: string;
                    menuID?: string;
                    customThankYouMessage?: string;
                    customWelcomeMessage?: string;
                    forms?: {
                        __typename?: "Form";
                        id: string;
                        name: string;
                    }[];
                    feeds?: {
                        __typename?: "Feed";
                        id: string;
                        name: string;
                    }[];
                    page?: {
                        __typename?: "Page";
                        id: string;
                        description?: string;
                        title?: string;
                        pageType?: PageType;
                    };
                }[];
            };
        }[];
        pageInfo: {
            __typename?: "PageInfo";
            endCursor?: any;
            hasNextPage?: boolean;
            hasPreviousPage?: boolean;
            startCursor?: any;
        };
    }>;
    get useList(): (options: import("../core").CacheUpdateOptions<import("../core").ServiceQueryHookOptions<import("@graphql-typed-document-node/core").TypedDocumentNode<import("../API").PortalListQuery, import("../API").Exact<{
        filter?: import("../API").PortalFilter;
        paging?: import("../API").CursorPaging;
        sorting?: import("../API").PortalSort | import("../API").PortalSort[];
    }>>>>) => {
        isLoading: boolean;
        isRefetching: boolean;
        hasMore: any;
        refetching: boolean;
        client: import("@apollo/client").ApolloClient<any>;
        observable: import("@apollo/client").ObservableQuery<import("../API").PortalListQuery, import("../API").Exact<{
            filter?: import("../API").PortalFilter;
            paging?: import("../API").CursorPaging;
            sorting?: import("../API").PortalSort | import("../API").PortalSort[];
        }>>;
        data: import("../API").PortalListQuery;
        previousData?: import("../API").PortalListQuery;
        error?: import("@apollo/client").ApolloError;
        errors?: readonly import("graphql").GraphQLFormattedError[];
        loading: boolean;
        networkStatus: import("@apollo/client").NetworkStatus;
        called: boolean;
        startPolling: (pollInterval: number) => void;
        stopPolling: () => void;
        subscribeToMore: <TSubscriptionData = import("../API").PortalListQuery, TSubscriptionVariables extends import("@apollo/client").OperationVariables = import("../API").Exact<{
            filter?: import("../API").PortalFilter;
            paging?: import("../API").CursorPaging;
            sorting?: import("../API").PortalSort | import("../API").PortalSort[];
        }>>(options: import("@apollo/client").SubscribeToMoreOptions<import("../API").PortalListQuery, TSubscriptionVariables, TSubscriptionData>) => () => void;
        updateQuery: <TVars extends import("@apollo/client").OperationVariables = import("../API").Exact<{
            filter?: import("../API").PortalFilter;
            paging?: import("../API").CursorPaging;
            sorting?: import("../API").PortalSort | import("../API").PortalSort[];
        }>>(mapFn: (previousQueryResult: import("../API").PortalListQuery, options: Pick<import("@apollo/client").WatchQueryOptions<TVars, import("../API").PortalListQuery>, "variables">) => import("../API").PortalListQuery) => void;
        refetch: (variables?: Partial<import("../API").Exact<{
            filter?: import("../API").PortalFilter;
            paging?: import("../API").CursorPaging;
            sorting?: import("../API").PortalSort | import("../API").PortalSort[];
        }>>) => Promise<import("@apollo/client").ApolloQueryResult<import("../API").PortalListQuery>>;
        reobserve: (newOptions?: Partial<import("@apollo/client").WatchQueryOptions<import("../API").Exact<{
            filter?: import("../API").PortalFilter;
            paging?: import("../API").CursorPaging;
            sorting?: import("../API").PortalSort | import("../API").PortalSort[];
        }>, import("../API").PortalListQuery>>, newNetworkStatus?: import("@apollo/client").NetworkStatus) => Promise<import("@apollo/client").ApolloQueryResult<import("../API").PortalListQuery>>;
        variables: import("../API").Exact<{
            filter?: import("../API").PortalFilter;
            paging?: import("../API").CursorPaging;
            sorting?: import("../API").PortalSort | import("../API").PortalSort[];
        }>;
        fetchMore: <TFetchData = import("../API").PortalListQuery, TFetchVars extends import("@apollo/client").OperationVariables = import("../API").Exact<{
            filter?: import("../API").PortalFilter;
            paging?: import("../API").CursorPaging;
            sorting?: import("../API").PortalSort | import("../API").PortalSort[];
        }>>(fetchMoreOptions: import("@apollo/client").FetchMoreQueryOptions<TFetchVars, TFetchData> & {
            updateQuery?: (previousQueryResult: import("../API").PortalListQuery, options: {
                fetchMoreResult: TFetchData;
                variables: TFetchVars;
            }) => import("../API").PortalListQuery;
        }) => Promise<import("@apollo/client").ApolloQueryResult<TFetchData>>;
    };
    get useLazyList(): (options?: import("../core").CacheUpdateOptions<import("../core").ServiceLazyQueryHookOptions<import("@graphql-typed-document-node/core").TypedDocumentNode<import("../API").PortalListQuery, import("../API").Exact<{
        filter?: import("../API").PortalFilter;
        paging?: import("../API").CursorPaging;
        sorting?: import("../API").PortalSort | import("../API").PortalSort[];
    }>>>>) => import("@apollo/client").LazyQueryResultTuple<import("../API").PortalListQuery, import("../API").Exact<{
        filter?: import("../API").PortalFilter;
        paging?: import("../API").CursorPaging;
        sorting?: import("../API").PortalSort | import("../API").PortalSort[];
    }>>;
    validateName: (title: string, isCustomerPortal?: boolean) => Promise<boolean>;
}
