import { ComponentModel } from '@teambit/component';
import { ComponentID } from '@teambit/component-id';
import { Workspace } from './workspace-model';
type UseWorkspaceOptions = {
    onComponentAdded?: (component: ComponentModel[]) => void;
    onComponentUpdated?: (component: ComponentModel[]) => void;
    onComponentRemoved?: (compId: ComponentID[]) => void;
};
export declare function useWorkspace(options?: UseWorkspaceOptions): {
    client: import("@apollo/client").ApolloClient<any>;
    observable: import("@apollo/client").ObservableQuery<any, import("@apollo/client").OperationVariables>;
    previousData?: any;
    error?: import("@apollo/client").ApolloError;
    errors?: ReadonlyArray<import("graphql").GraphQLFormattedError>;
    loading: boolean;
    networkStatus: import("@apollo/client").NetworkStatus;
    called: boolean;
    startPolling: (pollInterval: number) => void;
    stopPolling: () => void;
    updateQuery: <TVars extends import("@apollo/client").OperationVariables = import("@apollo/client").OperationVariables>(mapFn: (previousQueryResult: any, options: Pick<import("@apollo/client").WatchQueryOptions<TVars, any>, "variables">) => any) => void;
    refetch: (variables?: Partial<import("@apollo/client").OperationVariables> | undefined) => Promise<import("@apollo/client").ApolloQueryResult<any>>;
    reobserve: (newOptions?: Partial<import("@apollo/client").WatchQueryOptions<import("@apollo/client").OperationVariables, any>> | undefined, newNetworkStatus?: import("@apollo/client").NetworkStatus) => Promise<import("@apollo/client").ApolloQueryResult<any>>;
    variables: import("@apollo/client").OperationVariables | undefined;
    fetchMore: <TFetchData = any, TFetchVars extends import("@apollo/client").OperationVariables = import("@apollo/client").OperationVariables>(fetchMoreOptions: import("@apollo/client").FetchMoreQueryOptions<TFetchVars, TFetchData> & {
        updateQuery?: ((previousQueryResult: any, options: {
            fetchMoreResult: TFetchData;
            variables: TFetchVars;
        }) => any) | undefined;
    }) => Promise<import("@apollo/client").ApolloQueryResult<TFetchData>>;
    workspace: Workspace | undefined;
    subscribeToMore: <TSubscriptionData = any, TSubscriptionVariables extends import("@apollo/client").OperationVariables = import("@apollo/client").OperationVariables>(options: import("@apollo/client").SubscribeToMoreOptions<any, TSubscriptionVariables, TSubscriptionData>) => () => void;
};
export {};
