import type { NativeQuery, NormalizedDatabase, StructuredQuery } from "../../../metabase-types/api";
import Question from "../Question";
import type Metadata from "./Metadata";
import type Schema from "./Schema";
import type Table from "./Table";
interface Database extends Omit<NormalizedDatabase, "tables" | "schemas"> {
    tables?: Table[];
    schemas?: Schema[];
    metadata?: Metadata;
}
/**
 * @deprecated use RTK Query endpoints and plain api objects from metabase-types/api
 */
declare class Database {
    private readonly _plainObject;
    constructor(database: NormalizedDatabase);
    getPlainObject(): NormalizedDatabase;
    displayName(): string;
    schema(schemaName: string | undefined): Schema | null | undefined;
    schemaNames(): string[];
    getSchemas(): Schema[];
    schemasCount(): number;
    getTables(): Table[];
    tablesLookup(): {
        [k: string]: Table;
    };
    get tables_lookup(): {
        [k: string]: Table;
    };
    hasFeature(feature: string | null | undefined): boolean;
    supportsPivots(): boolean;
    supportsExpressions(): boolean;
    canWrite(): boolean;
    canUpload(): boolean;
    isPersisted(): boolean;
    supportsPersistence(): boolean;
    supportsActions(): boolean;
    hasActionsEnabled(): boolean;
    newQuestion(): Question;
    question(query?: StructuredQuery): Question;
    nativeQuestion(native?: Partial<NativeQuery>): Question;
    nativeQuery(native: Partial<NativeQuery>): import("../queries/AtomicQuery").default | import("../queries/StructuredQuery").default;
    savedQuestionsDatabase(): Database | undefined;
}
export default Database;
