import Metadata from "../../metabase-lib/v1/metadata/Metadata";
import type { NormalizedDatabase, NormalizedField, NormalizedSegment, NormalizedTable } from "../../metabase-types/api";
import type { State } from "../../metabase-types/store";
type TableSelectorOpts = {
    includeHiddenTables?: boolean;
};
type FieldSelectorOpts = {
    includeSensitiveFields?: boolean;
};
export type MetadataSelectorOpts = TableSelectorOpts & FieldSelectorOpts;
export declare const getShallowDatabases: (state: State) => Record<string, NormalizedDatabase>;
export declare const getShallowTables: ((state: State, props?: TableSelectorOpts | undefined) => Record<string, NormalizedTable>) & {
    clearCache: () => void;
    resultsCount: () => number;
    resetResultsCount: () => void;
} & {
    resultFunc: (resultFuncArgs_0: Record<string, NormalizedTable>, resultFuncArgs_1: boolean) => Record<string, NormalizedTable>;
    memoizedResultFunc: ((resultFuncArgs_0: Record<string, NormalizedTable>, resultFuncArgs_1: boolean) => Record<string, NormalizedTable>) & {
        clearCache: () => void;
        resultsCount: () => number;
        resetResultsCount: () => void;
    };
    lastResult: () => Record<string, NormalizedTable>;
    dependencies: [(state: State) => Record<string, NormalizedTable>, (_state: State, props?: TableSelectorOpts) => boolean];
    recomputations: () => number;
    resetRecomputations: () => void;
    dependencyRecomputations: () => number;
    resetDependencyRecomputations: () => void;
} & {
    argsMemoize: typeof import("reselect").weakMapMemoize;
    memoize: typeof import("reselect").weakMapMemoize;
};
export declare const getShallowFields: ((state: State, props?: (TableSelectorOpts & FieldSelectorOpts) | undefined) => {
    [k: string]: NormalizedField;
}) & {
    clearCache: () => void;
    resultsCount: () => number;
    resetResultsCount: () => void;
} & {
    resultFunc: (resultFuncArgs_0: Record<string, NormalizedField>, resultFuncArgs_1: Record<string, NormalizedTable>, resultFuncArgs_2: boolean, resultFuncArgs_3: boolean) => {
        [k: string]: NormalizedField;
    };
    memoizedResultFunc: ((resultFuncArgs_0: Record<string, NormalizedField>, resultFuncArgs_1: Record<string, NormalizedTable>, resultFuncArgs_2: boolean, resultFuncArgs_3: boolean) => {
        [k: string]: NormalizedField;
    }) & {
        clearCache: () => void;
        resultsCount: () => number;
        resetResultsCount: () => void;
    };
    lastResult: () => {
        [k: string]: NormalizedField;
    };
    dependencies: [(state: State) => Record<string, NormalizedField>, (state: State) => Record<string, NormalizedTable>, (_state: State, props?: TableSelectorOpts) => boolean, (_state: State, props?: FieldSelectorOpts) => boolean];
    recomputations: () => number;
    resetRecomputations: () => void;
    dependencyRecomputations: () => number;
    resetDependencyRecomputations: () => void;
} & {
    argsMemoize: typeof import("reselect").weakMapMemoize;
    memoize: typeof import("reselect").weakMapMemoize;
};
export declare const getShallowSegments: (state: State) => Record<string, NormalizedSegment>;
export declare const getMetadata: (state: State, props?: MetadataSelectorOpts) => Metadata;
export declare const getMetadataUnfiltered: (state: State) => Metadata;
export declare const getMetadataWithHiddenTables: (state: State, props?: TableSelectorOpts) => Metadata;
export {};
