import type * as pgPromise from "pg-promise"; import type { AnyObject, ColumnInfo, FieldFilter, SelectParams, SubscribeParams, SubscriptionChannels, SubscriptionHandler } from "prostgles-types"; import type { TableEvent } from "../../Logging"; import type { DB } from "../../Prostgles"; import type { Join } from "../../ProstglesTypes"; import type { ParsedTableRule } from "../../PublishParser/PublishParser"; import type { Graph } from "../../shortestPath"; import type { DboBuilder, Filter, LocalParams, TableHandlers } from "../DboBuilder"; import type { TableSchema } from "../DboBuilderTypes"; import type { OnData } from "./subscribe"; import type { TableDefinition } from "../../TableConfig/TableConfig"; export type JoinPaths = { t1: string; t2: string; path: string[]; }[]; export declare class ViewHandler { db: DB; name: string; escapedName: string; columns: TableSchema["columns"]; columnsForTypes: ColumnInfo[]; column_names: string[]; tableOrViewInfo: TableSchema; tsColumnDefs: string[]; joins: Join[]; joinGraph?: Graph; joinPaths?: JoinPaths; dboBuilder: DboBuilder; config: TableDefinition | undefined; tx?: { t: pgPromise.ITask<{}>; dbTX: TableHandlers; }; get dbHandler(): DB | pgPromise.ITask<{}>; is_view: boolean; filterDef: string; is_media: boolean; constructor({ db, config, dboBuilder, tableOrViewInfo, tx, joinPaths, }: { db: DB; tableOrViewInfo: TableSchema; dboBuilder: DboBuilder; config: TableDefinition | undefined; tx?: { t: pgPromise.ITask<{}>; dbTX: TableHandlers; }; joinPaths?: JoinPaths; }); _log: ({ command, data, localParams, duration, error, }: Pick & { duration: number; error?: any; }) => void | Promise; getRowHashSelect(allowedFields: FieldFilter, alias?: string, tableAlias?: string): string; validateViewRules: (args: { fields?: FieldFilter; filterFields?: FieldFilter; returningFields?: FieldFilter; forcedFilter?: AnyObject; dynamicFields?: import("../../PublishParser/publishTypesAndUtils").UpdateRule["dynamicFields"]; rule: "update" | "select" | "insert" | "delete"; }) => Promise; checkFilter(filter: any): void; getInfo: (lang?: string | undefined, param2?: any, param3?: any, tableRules?: ParsedTableRule | undefined, localParams?: LocalParams | undefined) => Promise; getColumns: (lang?: string | undefined, params?: { rule: "update"; filter: AnyObject; } | undefined, _param3?: undefined, tableRules?: ParsedTableRule | undefined, localParams?: LocalParams | undefined) => Promise; getValidatedRules: (tableRules?: ParsedTableRule | undefined, localParams?: LocalParams | undefined) => import("../DboBuilderTypes").ValidatedTableRules; find: (filter?: Filter | undefined, selectParams?: SelectParams | undefined, _?: undefined, tableRules?: ParsedTableRule | undefined, localParams?: LocalParams | undefined) => Promise; findOne(filter?: Filter, selectParams?: SelectParams, _param3_unused?: undefined, table_rules?: ParsedTableRule, localParams?: LocalParams): Promise; subscribe(filter: Filter, params: SubscribeParams, onData: OnData): Promise; subscribe(filter: Filter, params: SubscribeParams, onData?: OnData, table_rules?: ParsedTableRule, localParams?: LocalParams): Promise; subscribeOne(filter: Filter, params: SubscribeParams, onData: (item: AnyObject | undefined, error?: unknown) => any): Promise; subscribeOne(filter: Filter, params: SubscribeParams, onData: undefined, table_rules: ParsedTableRule, localParams: LocalParams): Promise; count: (_filter?: Filter | undefined, selectParams?: SelectParams | undefined, _param3_unused?: undefined, table_rules?: ParsedTableRule | undefined, localParams?: LocalParams | undefined) => Promise; size: (_filter?: Filter | undefined, selectParams?: SelectParams | undefined, param3_unused?: undefined, table_rules?: ParsedTableRule | undefined, localParams?: LocalParams | undefined) => Promise; getAllowedSelectFields(selectParams: FieldFilter | undefined, allowed_cols: FieldFilter, allow_empty?: boolean): string[]; /** * Parses group or simple filter */ prepareWhere: (params: import("./prepareWhere").PrepareWhereParams) => Promise<{ columnsUsed: string[]; condition: string; where: string; filter: AnyObject; exists: import("../DboBuilderTypes").ExistsFilterConfig[]; }>; intersectColumns(allowedFields: FieldFilter, dissallowedFields: FieldFilter, removeDisallowedFields?: boolean): string[]; parseFieldFilter(fieldParams?: FieldFilter, allow_empty?: boolean, allowed_cols?: string[]): string[]; } /** * Throw error if illegal keys found in object */ export declare const validateObj: >(obj: T, allowedKeys: string[]) => T; //# sourceMappingURL=ViewHandler.d.ts.map