/// <reference types="@ws-ui/shared/dist/declarations/datasources/datasource" />
/**
 * Returns the list of declared datasources in the current tab.
 * @param tabPath the current tab path.
 * @returns datasources or an empty array if not found.
 */
export declare const selectDatasourcesByPath: (tabPath: string) => ((state: import('redux').EmptyObject & {
    root: import('../modules').IRootState;
    explorer: import('../modules').ITreeItem[];
    debugger: import('../modules').IDebuggerState;
    settings: import('../modules').ISettingsState;
    catalog: {
        state: "loading";
    } | {
        state: "loaded";
        model: datasources.IEnhancedCatalog;
    } | {
        state: "error";
        error: string;
    };
    roles: import('../modules').IRolesState;
    sharedDatasources: import('../modules').ISharedDatasourcesState;
    savedConditions: import('../modules').ISavedConditionsState;
    webforms: import('../modules').IWebformEditorState;
    modals: import('../modules').IModalsState;
    sharedCSS: import('../modules').ISharedCSSState;
    model: import('../modules').IModelState;
    tasks: import('@ws-ui/shared').ISingleTask[];
}) => datasources.ICreateDataSource[]) & import('reselect').OutputSelectorFields<(args_0: import('../modules').IRootState) => datasources.ICreateDataSource[], {
    clearCache: () => void;
}> & {
    clearCache: () => void;
};
/**
 * Returns the declaration object for the datasource.
 * @param id datasource id.
 * @param namespace datasource namespace.
 * @param tabPath the current tab path.
 * @returns datasource or undefined if not found.
 */
export declare const selectDatasource: (id: string, namespace: string, tabPath: string) => ((state: import('redux').EmptyObject & {
    root: import('../modules').IRootState;
    explorer: import('../modules').ITreeItem[];
    debugger: import('../modules').IDebuggerState;
    settings: import('../modules').ISettingsState;
    catalog: {
        state: "loading";
    } | {
        state: "loaded";
        model: datasources.IEnhancedCatalog;
    } | {
        state: "error";
        error: string;
    };
    roles: import('../modules').IRolesState;
    sharedDatasources: import('../modules').ISharedDatasourcesState;
    savedConditions: import('../modules').ISavedConditionsState;
    webforms: import('../modules').IWebformEditorState;
    modals: import('../modules').IModalsState;
    sharedCSS: import('../modules').ISharedCSSState;
    model: import('../modules').IModelState;
    tasks: import('@ws-ui/shared').ISingleTask[];
}) => datasources.ICreateDataSourceScalar | datasources.ICreateDataSourceEntity | datasources.ICreateDataSourceEntitySelection | undefined) & import('reselect').OutputSelectorFields<(args_0: import('redux').CombinedState<{
    root: import('../modules').IRootState;
    explorer: import('../modules').ITreeItem[];
    debugger: import('../modules').IDebuggerState;
    settings: import('../modules').ISettingsState;
    catalog: {
        state: "loading";
    } | {
        state: "loaded";
        model: datasources.IEnhancedCatalog;
    } | {
        state: "error";
        error: string;
    };
    roles: import('../modules').IRolesState;
    sharedDatasources: import('../modules').ISharedDatasourcesState;
    savedConditions: import('../modules').ISavedConditionsState;
    webforms: import('../modules').IWebformEditorState;
    modals: import('../modules').IModalsState;
    sharedCSS: import('../modules').ISharedCSSState;
    model: import('../modules').IModelState;
    tasks: import('@ws-ui/shared').ISingleTask[];
}>) => datasources.ICreateDataSourceScalar | datasources.ICreateDataSourceEntity | datasources.ICreateDataSourceEntitySelection | undefined, {
    clearCache: () => void;
}> & {
    clearCache: () => void;
};
/**
 * Returns the shared datasources namespaces.
 */
export declare const selectSharedDatasources: ((state: import('redux').EmptyObject & {
    root: import('../modules').IRootState;
    explorer: import('../modules').ITreeItem[];
    debugger: import('../modules').IDebuggerState;
    settings: import('../modules').ISettingsState;
    catalog: {
        state: "loading";
    } | {
        state: "loaded";
        model: datasources.IEnhancedCatalog;
    } | {
        state: "error";
        error: string;
    };
    roles: import('../modules').IRolesState;
    sharedDatasources: import('../modules').ISharedDatasourcesState;
    savedConditions: import('../modules').ISavedConditionsState;
    webforms: import('../modules').IWebformEditorState;
    modals: import('../modules').IModalsState;
    sharedCSS: import('../modules').ISharedCSSState;
    model: import('../modules').IModelState;
    tasks: import('@ws-ui/shared').ISingleTask[];
}) => {
    [key: string]: datasources.ICreateDataSource[];
}) & import('reselect').OutputSelectorFields<(args_0: import('redux').CombinedState<{
    root: import('../modules').IRootState;
    explorer: import('../modules').ITreeItem[];
    debugger: import('../modules').IDebuggerState;
    settings: import('../modules').ISettingsState;
    catalog: {
        state: "loading";
    } | {
        state: "loaded";
        model: datasources.IEnhancedCatalog;
    } | {
        state: "error";
        error: string;
    };
    roles: import('../modules').IRolesState;
    sharedDatasources: import('../modules').ISharedDatasourcesState;
    savedConditions: import('../modules').ISavedConditionsState;
    webforms: import('../modules').IWebformEditorState;
    modals: import('../modules').IModalsState;
    sharedCSS: import('../modules').ISharedCSSState;
    model: import('../modules').IModelState;
    tasks: import('@ws-ui/shared').ISingleTask[];
}>) => {
    [key: string]: datasources.ICreateDataSource[];
}, {
    clearCache: () => void;
}> & {
    clearCache: () => void;
};
export declare const selectSharedDatasourcesState: ((state: import('redux').EmptyObject & {
    root: import('../modules').IRootState;
    explorer: import('../modules').ITreeItem[];
    debugger: import('../modules').IDebuggerState;
    settings: import('../modules').ISettingsState;
    catalog: {
        state: "loading";
    } | {
        state: "loaded";
        model: datasources.IEnhancedCatalog;
    } | {
        state: "error";
        error: string;
    };
    roles: import('../modules').IRolesState;
    sharedDatasources: import('../modules').ISharedDatasourcesState;
    savedConditions: import('../modules').ISavedConditionsState;
    webforms: import('../modules').IWebformEditorState;
    modals: import('../modules').IModalsState;
    sharedCSS: import('../modules').ISharedCSSState;
    model: import('../modules').IModelState;
    tasks: import('@ws-ui/shared').ISingleTask[];
}) => "loading" | "error" | "loaded") & import('reselect').OutputSelectorFields<(args_0: import('redux').CombinedState<{
    root: import('../modules').IRootState;
    explorer: import('../modules').ITreeItem[];
    debugger: import('../modules').IDebuggerState;
    settings: import('../modules').ISettingsState;
    catalog: {
        state: "loading";
    } | {
        state: "loaded";
        model: datasources.IEnhancedCatalog;
    } | {
        state: "error";
        error: string;
    };
    roles: import('../modules').IRolesState;
    sharedDatasources: import('../modules').ISharedDatasourcesState;
    savedConditions: import('../modules').ISavedConditionsState;
    webforms: import('../modules').IWebformEditorState;
    modals: import('../modules').IModalsState;
    sharedCSS: import('../modules').ISharedCSSState;
    model: import('../modules').IModelState;
    tasks: import('@ws-ui/shared').ISingleTask[];
}>) => "loading" | "error" | "loaded", {
    clearCache: () => void;
}> & {
    clearCache: () => void;
};
export type TDatasourcesFilter = (datasources.ICreateDataSource['type'] | datasources.ICreateDataSourceScalar['dataType'] | 'objectFromArray')[];
export type TDatasourcesNotIn = {
    id: string;
    namespace?: string;
}[];
/**
 * Returns the list of declared & shared datasources in the current tab.
 * @param tabPath the current tab path.
 * @returns datasource or an empty array if not found.
 */
export declare const selectAllDatasourcesByPath: (tabPath: string, exclude?: 'private' | 'shared' | 'user', filter?: TDatasourcesFilter | null, notIn?: TDatasourcesNotIn) => ((state: import('redux').EmptyObject & {
    root: import('../modules').IRootState;
    explorer: import('../modules').ITreeItem[];
    debugger: import('../modules').IDebuggerState;
    settings: import('../modules').ISettingsState;
    catalog: {
        state: "loading";
    } | {
        state: "loaded";
        model: datasources.IEnhancedCatalog;
    } | {
        state: "error";
        error: string;
    };
    roles: import('../modules').IRolesState;
    sharedDatasources: import('../modules').ISharedDatasourcesState;
    savedConditions: import('../modules').ISavedConditionsState;
    webforms: import('../modules').IWebformEditorState;
    modals: import('../modules').IModalsState;
    sharedCSS: import('../modules').ISharedCSSState;
    model: import('../modules').IModelState;
    tasks: import('@ws-ui/shared').ISingleTask[];
}) => datasources.ICreateDataSource[]) & import('reselect').OutputSelectorFields<(args_0: datasources.ICreateDataSource[], args_1: {
    [key: string]: datasources.ICreateDataSource[];
}) => datasources.ICreateDataSource[], {
    clearCache: () => void;
}> & {
    clearCache: () => void;
};
