import type { App } from "./app.js";
import { Collection } from "./collection_model.js";
import { FieldsList } from "./fields_list.js";
import { Record as RecordModel } from "./record_model.js";
export declare function DeleteView(app: App, dangerousViewName: string): Error | null;
export declare function SaveView(app: App, dangerousViewName: string, dangerousSelectQuery: string): Promise<Error | null>;
export declare function SaveViewSync(app: App, dangerousViewName: string, dangerousSelectQuery: string): Error | null;
export declare function CreateViewFields(app: App, dangerousSelectQuery: string): Promise<FieldsList>;
export declare function CreateViewFieldsSync(app: App, dangerousSelectQuery: string): FieldsList;
export type DryRunViewResult = {
    fields: FieldsList;
    sample: RecordModel[];
};
export declare function DryRunView(app: App, dangerousSelectQuery: string, sampleSize: number): Promise<DryRunViewResult>;
export declare function FindRecordByViewFile(app: App, viewCollectionModelOrIdentifier: Collection | string, fileFieldName: string, filename: string): RecordModel;
export declare function getQueryTableInfo(app: App, selectQuery: string): Promise<import("./db_table.js").TableInfoRow[]>;
export declare function getQueryTableInfoSync(app: App, selectQuery: string): import("./db_table.js").TableInfoRow[];
type Identifier = {
    original: string;
    alias: string;
};
export declare class IdentifiersParser {
    columns: Identifier[];
    tables: Identifier[];
    parse(selectQuery: string): void;
}
export {};
