import type pgPromise from "pg-promise"; import type { AnyObject, DeleteParams, FieldFilter, InsertParams, Select, UpdateParams } from "prostgles-types"; import type { DB } from "../../Prostgles"; import type { InsertRule, ParsedTableRule, UpdateRule } from "../../PublishParser/PublishParser"; import type TableConfigurator from "../../TableConfig/TableConfig"; import type { TableDefinition } from "../../TableConfig/TableConfig"; import type { DboBuilder, Filter, LocalParams, TableHandlers } from "../DboBuilder"; import type { TableSchema } from "../DboBuilderTypes"; import { type SelectItemValidated } from "../QueryBuilder/QueryBuilder"; import type { JoinPaths } from "../ViewHandler/ViewHandler"; import { ViewHandler } from "../ViewHandler/ViewHandler"; import { DataValidator } from "./DataValidator"; export type ValidatedParams = { row: AnyObject; forcedData?: AnyObject; allowedFields?: FieldFilter; tableRules?: ParsedTableRule; removeDisallowedFields: boolean; tableConfigurator: TableConfigurator | undefined; tableHandler: TableHandler; }; export declare class TableHandler extends ViewHandler { dataValidator: DataValidator; constructor({ db, config, dboBuilder, tableOrViewInfo, tx, joinPaths, }: { db: DB; tableOrViewInfo: TableSchema; dboBuilder: DboBuilder; config: TableDefinition | undefined; tx?: { t: pgPromise.ITask<{}>; dbTX: TableHandlers; }; joinPaths?: JoinPaths; }); getFinalDBtx: (localParams: LocalParams | undefined) => TableHandlers | undefined; getHooksAndChecks: (command: { name: "update"; rule: undefined | UpdateRule; } | { name: "insert"; rule: undefined | InsertRule; }) => ({ readonly commands: Partial>; readonly changedFields?: string[]; readonly validate: (params: import("../../PublishParser/publishTypesAndUtils").ValidateRowArgsCommon & { localParams: undefined | LocalParams; }) => Promise; readonly type: "afterEach"; } | { readonly commands: Partial>; readonly changedFields?: string[]; readonly validate: (params: import("../../PublishParser/publishTypesAndUtils").ValidateRowsArgsCommon & { localParams: undefined | LocalParams; }) => Promise; readonly type: "afterAll"; } | { readonly type: "postValidate"; readonly validate: import("../../PublishParser/publishTypesAndUtils").PostValidateRowBasic; readonly checkFilter?: undefined; } | { readonly type: "checkFilter"; readonly checkFilter: import("prostgles-types").FullFilter; readonly validate?: undefined; })[]; shouldWrapInTx: (command: { name: "update"; rule: undefined | UpdateRule; } | { name: "insert"; rule: undefined | InsertRule; }, localParams: LocalParams | undefined) => boolean; getFinalDbo: (localParams: LocalParams | undefined) => TableHandlers; parseUpdateRules: (filter: Filter, params?: UpdateParams | undefined, tableRules?: ParsedTableRule | undefined, localParams?: LocalParams | undefined) => Promise<{ fields: string[]; validateRow?: import("../../PublishParser/publishTypesAndUtils").ValidateRowBasic; finalUpdateFilter: AnyObject; forcedData?: AnyObject; forcedFilter?: AnyObject; returningFields: FieldFilter; filterFields?: FieldFilter; }>; update: (filter: Filter, _newData: AnyObject, params?: UpdateParams | undefined, tableRules?: ParsedTableRule | undefined, localParams?: LocalParams | undefined) => Promise; updateBatch: (updates: [Filter, AnyObject][], params?: UpdateParams | undefined, _?: undefined, tableRules?: ParsedTableRule | undefined, localParams?: LocalParams | undefined) => Promise; insert(rowOrRows: AnyObject | AnyObject[], param2?: InsertParams, param3_unused?: undefined, tableRules?: ParsedTableRule, _localParams?: LocalParams): Promise; insertMany(rows: AnyObject[], param2?: InsertParams, param3_unused?: undefined, tableRules?: ParsedTableRule, _localParams?: LocalParams): Promise; prepareReturning: (returning: Select | undefined, allowedFields: string[]) => Promise; makeReturnQuery(items?: SelectItemValidated[]): string; delete(filter?: Filter, params?: DeleteParams, param3_unused?: undefined, table_rules?: ParsedTableRule, localParams?: LocalParams): Promise; remove(filter: Filter, params?: UpdateParams, param3_unused?: undefined, tableRules?: ParsedTableRule, localParams?: LocalParams): Promise; upsert: (filter: Filter, newData: AnyObject, params?: UpdateParams | undefined, table_rules?: ParsedTableRule | undefined, localParams?: LocalParams | undefined) => Promise; sync(filter: Filter, params: { select?: FieldFilter; }, param3_unused: undefined, table_rules: ParsedTableRule, localParams: LocalParams): Promise<{ channelName: string; id_fields: string[]; synced_field: string; }>; } export declare const getSelectItemQuery: (items: SelectItemValidated[]) => string; //# sourceMappingURL=TableHandler.d.ts.map