import { CreateDashboardParams, Vizzly, UpdateDashboardParams, VizzlyServicesProperties } from '../../../services/src';
import { QueryEngineConfig } from '../../../shared-logic/src/QueryEngineConfig/types';
import { Dashboard } from '../../../shared-logic/src/Dashboard/types';
import { DashboardAccessConfig, IdentityConfig } from '../../../shared-logic/src/IdentityConfig/types';
import { SavingState } from '../../../shared-logic/src/VizzlyState';
import { LoaderOptions } from '../../../services/src/VizzlyLoader';
export declare type LoadedVizzlyHook = Omit<State, 'loading'> & {
    createDashboard: (params: CreateDashboardParams) => Promise<Dashboard | null>;
    updateDashboard: (params: UpdateDashboardParams) => Promise<Dashboard | null>;
    identityConfig: IdentityConfig;
    queryEngineConfig: QueryEngineConfig;
    accessType: DashboardAccessConfig['accessType'];
    loading: false;
    filterDashboards: typeof Vizzly.filterDashboards;
    refetch: () => void;
};
export declare type LoadingVizzlyHook = Omit<State, 'loading'> & {
    createDashboard: null;
    updateDashboard: null;
    identityConfig: null;
    queryEngineConfig: null;
    accessType: null;
    loading: true;
    refetch: null;
};
declare type Returns = LoadedVizzlyHook | LoadingVizzlyHook;
declare type State = {
    dashboards: Dashboard[];
    loading: boolean;
    error: Error | undefined;
    saving?: SavingState;
};
export declare const useVizzly: (properties: VizzlyServicesProperties, options?: LoaderOptions | undefined, deps?: any[] | undefined) => Returns;
export {};
