import { SavedView, SavedViewColumnObject, SavedViewTableOptions, SavedViewsValidationDocument } from '../API';
import { ApolloClientService, CRUDService, ICrudService, ServiceQueryOptions } from '../core';
import { SavedViewColumnObjectService } from './saved-view-columns-object.service';
import { SavedViewWithFilters } from '@parlor/components';
type CreateDefaultInput = {
    inboxID?: string;
    tableType: SavedViewTableOptions;
};
export declare class SavedViewService extends CRUDService<SavedView> {
    private savedViewColumnObjectService;
    protected hasOneModels: ICrudService<SavedView>['hasOneModels'];
    protected hasManyModels: ICrudService<SavedView>['hasManyModels'];
    constructor(client: ApolloClientService, savedViewColumnObjectService: SavedViewColumnObjectService);
    validate: (options?: ServiceQueryOptions<typeof SavedViewsValidationDocument>) => Promise<boolean>;
    generateDefault(tableType: SavedViewTableOptions): SavedViewWithFilters;
    getDefault({ tableType, inboxID }: CreateDefaultInput): Promise<{
        __typename?: "SavedView";
        id: string;
        name: string;
        isPublic: boolean;
        isDefault?: boolean;
        isFavorited: boolean;
        filters: any;
        organizationID: string;
        tableType: SavedViewTableOptions;
        updated_at: any;
        created_at: any;
        adminID?: string;
        inboxID?: string;
        admin?: {
            __typename?: "Admin";
            id: string;
            firstName?: string;
            lastName?: string;
            email: string;
            avatar?: string;
            role: import("../API").AdminRole;
            team?: import("../API").AdminTeams;
            isCurrentMember?: boolean;
            title?: string;
            location?: string;
            bio?: string;
            isEmailValid: boolean;
        };
        inbox?: {
            __typename?: "Inbox";
            id: string;
            name: string;
            key: string;
        };
        columnObjects?: {
            __typename?: "SavedViewColumnObject";
            id: string;
            key: string;
            sortIndex?: number;
            savedViewID: string;
            organizationID: string;
        }[];
    }>;
    createDefault({ tableType, inboxID }: CreateDefaultInput, options?: Parameters<typeof this.create>[1]): Promise<{
        __typename?: "SavedView";
        id: string;
        name: string;
        isPublic: boolean;
        isDefault?: boolean;
        isFavorited: boolean;
        filters: any;
        organizationID: string;
        tableType: SavedViewTableOptions;
        updated_at: any;
        created_at: any;
        adminID?: string;
        inboxID?: string;
        admin?: {
            __typename?: "Admin";
            id: string;
            firstName?: string;
            lastName?: string;
            email: string;
            avatar?: string;
            role: import("../API").AdminRole;
            team?: import("../API").AdminTeams;
            isCurrentMember?: boolean;
            title?: string;
            location?: string;
            bio?: string;
            isEmailValid: boolean;
        };
        inbox?: {
            __typename?: "Inbox";
            id: string;
            name: string;
            key: string;
        };
        columnObjects?: {
            __typename?: "SavedViewColumnObject";
            id: string;
            key: string;
            sortIndex?: number;
            savedViewID: string;
            organizationID: string;
        }[];
    }>;
    saveColumnObjects(savedViewID: string, columnObjects?: Pick<SavedViewColumnObject, 'id' | 'sortIndex' | 'key' | 'organizationID' | 'propertyMapID'>[]): Promise<{
        __typename?: "SavedViewColumnObject";
        id: string;
        key: string;
        sortIndex?: number;
        savedViewID: string;
        organizationID: string;
    }[]>;
    get create(): (input: Partial<Record<"columnObjects", import("@parlor/components").ModelWithId[]> & Record<import("../core").HasOneRelationsOf<SavedView>, import("@parlor/components").ModelWithId>> & Omit<import("../API").CreateSavedView, "columnObjects" | import("../core").HasOneRelationsOf<SavedView>>, options?: import("../core").MutationOptionsWithoutMutation<import("@graphql-typed-document-node/core").TypedDocumentNode<import("../API").SavedViewCreateOneMutation, import("../API").Exact<{
        input: import("../API").CreateSavedView;
    }>>>) => Promise<{
        __typename?: "SavedView";
        id: string;
        name: string;
        isPublic: boolean;
        isDefault?: boolean;
        isFavorited: boolean;
        filters: any;
        organizationID: string;
        tableType: SavedViewTableOptions;
        updated_at: any;
        created_at: any;
        adminID?: string;
        inboxID?: string;
        admin?: {
            __typename?: "Admin";
            id: string;
            firstName?: string;
            lastName?: string;
            email: string;
            avatar?: string;
            role: import("../API").AdminRole;
            team?: import("../API").AdminTeams;
            isCurrentMember?: boolean;
            title?: string;
            location?: string;
            bio?: string;
            isEmailValid: boolean;
        };
        inbox?: {
            __typename?: "Inbox";
            id: string;
            name: string;
            key: string;
        };
        columnObjects?: {
            __typename?: "SavedViewColumnObject";
            id: string;
            key: string;
            sortIndex?: number;
            savedViewID: string;
            organizationID: string;
        }[];
    }>;
    get update(): (input: Partial<Record<"columnObjects", import("@parlor/components").ModelWithId[]> & Record<import("../core").HasOneRelationsOf<SavedView>, import("@parlor/components").ModelWithId>> & Omit<import("../API").UpdateSavedView, "columnObjects" | import("../core").HasOneRelationsOf<SavedView>> & {
        id: string;
    }, options?: import("../core").MutationOptionsWithoutMutation<import("@graphql-typed-document-node/core").TypedDocumentNode<import("../API").SavedViewUpdateOneMutation, import("../API").Exact<{
        input: import("../API").UpdateOneSavedViewInput;
    }>>>) => Promise<{
        __typename?: "SavedView";
        id: string;
        name: string;
        isPublic: boolean;
        isDefault?: boolean;
        isFavorited: boolean;
        filters: any;
        organizationID: string;
        tableType: SavedViewTableOptions;
        updated_at: any;
        created_at: any;
        adminID?: string;
        inboxID?: string;
        admin?: {
            __typename?: "Admin";
            id: string;
            firstName?: string;
            lastName?: string;
            email: string;
            avatar?: string;
            role: import("../API").AdminRole;
            team?: import("../API").AdminTeams;
            isCurrentMember?: boolean;
            title?: string;
            location?: string;
            bio?: string;
            isEmailValid: boolean;
        };
        inbox?: {
            __typename?: "Inbox";
            id: string;
            name: string;
            key: string;
        };
        columnObjects?: {
            __typename?: "SavedViewColumnObject";
            id: string;
            key: string;
            sortIndex?: number;
            savedViewID: string;
            organizationID: string;
        }[];
    }>;
    get delete(): (id: string, options?: import("../core").MutationOptionsWithoutMutation<import("@graphql-typed-document-node/core").TypedDocumentNode<import("../API").SavedViewDeleteOneMutation, import("../API").Exact<{
        input: import("../API").DeleteOneSavedViewInput;
    }>>>) => Promise<{
        __typename?: "SavedViewDeleteResponse";
        id?: string;
    }>;
    get get(): (id: string, options?: Omit<import("@apollo/client").QueryOptions<import("../API").Exact<{
        id: string;
    }>, import("../API").SavedViewGetQuery>, "query">) => Promise<{
        __typename?: "SavedView";
        id: string;
        name: string;
        isPublic: boolean;
        isDefault?: boolean;
        isFavorited: boolean;
        filters: any;
        organizationID: string;
        tableType: SavedViewTableOptions;
        updated_at: any;
        created_at: any;
        adminID?: string;
        inboxID?: string;
        admin?: {
            __typename?: "Admin";
            id: string;
            firstName?: string;
            lastName?: string;
            email: string;
            avatar?: string;
            role: import("../API").AdminRole;
            team?: import("../API").AdminTeams;
            isCurrentMember?: boolean;
            title?: string;
            location?: string;
            bio?: string;
            isEmailValid: boolean;
        };
        inbox?: {
            __typename?: "Inbox";
            id: string;
            name: string;
            key: string;
        };
        columnObjects?: {
            __typename?: "SavedViewColumnObject";
            id: string;
            key: string;
            sortIndex?: number;
            savedViewID: string;
            organizationID: string;
        }[];
    }>;
    get useGet(): (options: import("../core").ServiceQueryHookOptions<import("@graphql-typed-document-node/core").TypedDocumentNode<import("../API").SavedViewGetQuery, 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").SavedViewGetQuery, import("../API").Exact<{
            id: string;
        }>>;
        data: import("../API").SavedViewGetQuery;
        previousData?: import("../API").SavedViewGetQuery;
        error?: import("@apollo/client").ApolloError;
        loading: boolean;
        networkStatus: import("@apollo/client").NetworkStatus;
        called: boolean;
        variables: import("../API").Exact<{
            id: string;
        }>;
        startPolling: (pollInterval: number) => void;
        stopPolling: () => void;
        subscribeToMore: <TSubscriptionData = import("../API").SavedViewGetQuery, TSubscriptionVariables = import("../API").Exact<{
            id: string;
        }>>(options: import("@apollo/client").SubscribeToMoreOptions<import("../API").SavedViewGetQuery, TSubscriptionVariables, TSubscriptionData>) => () => void;
        updateQuery: <TVars = import("../API").Exact<{
            id: string;
        }>>(mapFn: (previousQueryResult: import("../API").SavedViewGetQuery, options: Pick<import("@apollo/client").WatchQueryOptions<TVars, import("../API").SavedViewGetQuery>, "variables">) => import("../API").SavedViewGetQuery) => void;
        refetch: (variables?: Partial<import("../API").Exact<{
            id: string;
        }>>) => Promise<import("@apollo/client").ApolloQueryResult<import("../API").SavedViewGetQuery>>;
        reobserve: (newOptions?: Partial<import("@apollo/client").WatchQueryOptions<import("../API").Exact<{
            id: string;
        }>, import("../API").SavedViewGetQuery>>, newNetworkStatus?: import("@apollo/client").NetworkStatus) => Promise<import("@apollo/client").ApolloQueryResult<import("../API").SavedViewGetQuery>>;
        fetchMore: <TFetchData = import("../API").SavedViewGetQuery, TFetchVars = import("../API").Exact<{
            id: string;
        }>>(fetchMoreOptions: import("@apollo/client").FetchMoreQueryOptions<TFetchVars, TFetchData> & {
            updateQuery?: (previousQueryResult: import("../API").SavedViewGetQuery, options: {
                fetchMoreResult: TFetchData;
                variables: TFetchVars;
            }) => import("../API").SavedViewGetQuery;
        }) => Promise<import("@apollo/client").ApolloQueryResult<TFetchData>>;
    };
    get useLazyGet(): (options?: import("../core").CacheUpdateOptions<import("../core").ServiceLazyQueryHookOptions<import("@graphql-typed-document-node/core").TypedDocumentNode<import("../API").SavedViewGetQuery, import("../API").Exact<{
        id: string;
    }>>>>) => import("@apollo/client").LazyQueryResultTuple<import("../API").SavedViewGetQuery, import("../API").Exact<{
        id: string;
    }>>;
    get list(): (input: import("../API").Exact<{
        filter?: import("../API").SavedViewFilter;
        paging?: import("../API").CursorPaging;
        sorting?: import("../API").SavedViewSort | import("../API").SavedViewSort[];
    }>, options?: ServiceQueryOptions<import("@graphql-typed-document-node/core").TypedDocumentNode<import("../API").SavedViewListQuery, import("../API").Exact<{
        filter?: import("../API").SavedViewFilter;
        paging?: import("../API").CursorPaging;
        sorting?: import("../API").SavedViewSort | import("../API").SavedViewSort[];
    }>>>) => Promise<{
        __typename?: "SavedViewConnection";
        totalCount: number;
        edges: {
            __typename?: "SavedViewEdge";
            cursor: any;
            node: {
                __typename?: "SavedView";
                id: string;
                name: string;
                isPublic: boolean;
                isDefault?: boolean;
                isFavorited: boolean;
                filters: any;
                organizationID: string;
                tableType: SavedViewTableOptions;
                updated_at: any;
                created_at: any;
                adminID?: string;
                inboxID?: string;
                admin?: {
                    __typename?: "Admin";
                    id: string;
                    firstName?: string;
                    lastName?: string;
                    email: string;
                    avatar?: string;
                    role: import("../API").AdminRole;
                    team?: import("../API").AdminTeams;
                    isCurrentMember?: boolean;
                    title?: string;
                    location?: string;
                    bio?: string;
                    isEmailValid: boolean;
                };
                inbox?: {
                    __typename?: "Inbox";
                    id: string;
                    name: string;
                    key: string;
                };
                columnObjects?: {
                    __typename?: "SavedViewColumnObject";
                    id: string;
                    key: string;
                    sortIndex?: number;
                    savedViewID: string;
                    organizationID: string;
                }[];
            };
        }[];
        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").SavedViewListQuery, import("../API").Exact<{
        filter?: import("../API").SavedViewFilter;
        paging?: import("../API").CursorPaging;
        sorting?: import("../API").SavedViewSort | import("../API").SavedViewSort[];
    }>>>>) => {
        isLoading: boolean;
        isRefetching: boolean;
        hasMore: any;
        refetching: boolean;
        client: import("@apollo/client").ApolloClient<any>;
        observable: import("@apollo/client").ObservableQuery<import("../API").SavedViewListQuery, import("../API").Exact<{
            filter?: import("../API").SavedViewFilter;
            paging?: import("../API").CursorPaging;
            sorting?: import("../API").SavedViewSort | import("../API").SavedViewSort[];
        }>>;
        data: import("../API").SavedViewListQuery;
        previousData?: import("../API").SavedViewListQuery;
        error?: import("@apollo/client").ApolloError;
        loading: boolean;
        networkStatus: import("@apollo/client").NetworkStatus;
        called: boolean;
        variables: import("../API").Exact<{
            filter?: import("../API").SavedViewFilter;
            paging?: import("../API").CursorPaging;
            sorting?: import("../API").SavedViewSort | import("../API").SavedViewSort[];
        }>;
        startPolling: (pollInterval: number) => void;
        stopPolling: () => void;
        subscribeToMore: <TSubscriptionData = import("../API").SavedViewListQuery, TSubscriptionVariables = import("../API").Exact<{
            filter?: import("../API").SavedViewFilter;
            paging?: import("../API").CursorPaging;
            sorting?: import("../API").SavedViewSort | import("../API").SavedViewSort[];
        }>>(options: import("@apollo/client").SubscribeToMoreOptions<import("../API").SavedViewListQuery, TSubscriptionVariables, TSubscriptionData>) => () => void;
        updateQuery: <TVars = import("../API").Exact<{
            filter?: import("../API").SavedViewFilter;
            paging?: import("../API").CursorPaging;
            sorting?: import("../API").SavedViewSort | import("../API").SavedViewSort[];
        }>>(mapFn: (previousQueryResult: import("../API").SavedViewListQuery, options: Pick<import("@apollo/client").WatchQueryOptions<TVars, import("../API").SavedViewListQuery>, "variables">) => import("../API").SavedViewListQuery) => void;
        refetch: (variables?: Partial<import("../API").Exact<{
            filter?: import("../API").SavedViewFilter;
            paging?: import("../API").CursorPaging;
            sorting?: import("../API").SavedViewSort | import("../API").SavedViewSort[];
        }>>) => Promise<import("@apollo/client").ApolloQueryResult<import("../API").SavedViewListQuery>>;
        reobserve: (newOptions?: Partial<import("@apollo/client").WatchQueryOptions<import("../API").Exact<{
            filter?: import("../API").SavedViewFilter;
            paging?: import("../API").CursorPaging;
            sorting?: import("../API").SavedViewSort | import("../API").SavedViewSort[];
        }>, import("../API").SavedViewListQuery>>, newNetworkStatus?: import("@apollo/client").NetworkStatus) => Promise<import("@apollo/client").ApolloQueryResult<import("../API").SavedViewListQuery>>;
        fetchMore: <TFetchData = import("../API").SavedViewListQuery, TFetchVars = import("../API").Exact<{
            filter?: import("../API").SavedViewFilter;
            paging?: import("../API").CursorPaging;
            sorting?: import("../API").SavedViewSort | import("../API").SavedViewSort[];
        }>>(fetchMoreOptions: import("@apollo/client").FetchMoreQueryOptions<TFetchVars, TFetchData> & {
            updateQuery?: (previousQueryResult: import("../API").SavedViewListQuery, options: {
                fetchMoreResult: TFetchData;
                variables: TFetchVars;
            }) => import("../API").SavedViewListQuery;
        }) => Promise<import("@apollo/client").ApolloQueryResult<TFetchData>>;
    };
}
export {};
