///
import { Credentials } from "@dataform/api/commands/credentials";
import { dataform } from "@dataform/protos";
export declare type OnCancel = (handleCancel: () => void) => void;
export declare const CACHED_STATE_TABLE_TARGET: dataform.ITarget;
export interface IExecutionResult {
rows: any[];
metadata: dataform.IExecutionMetadata;
}
export interface IDbAdapter {
execute(statement: string, options?: {
onCancel?: OnCancel;
interactive?: boolean;
maxResults?: number;
}): Promise;
evaluate(statement: string): Promise;
tables(): Promise;
table(target: dataform.ITarget): Promise;
preview(target: dataform.ITarget, limitRows?: number): Promise;
prepareSchema(database: string, schema: string): Promise;
prepareStateMetadataTable(): Promise;
persistStateMetadata(actions: dataform.IExecutionAction[]): Promise;
persistedStateMetadata(): Promise;
setMetadata(action: dataform.IExecutionAction): Promise;
deleteStateMetadata(actions: dataform.IExecutionAction[]): Promise;
close(): Promise;
}
export interface IDbAdapterClass {
create: (credentials: Credentials) => Promise;
}
export declare function register(warehouseType: string, c: IDbAdapterClass): void;
export declare function create(credentials: Credentials, warehouseType: string): Promise;