import { Pool } from "pg"; import { ID, Data } from "../core/base"; import { Clause } from "../core/clause"; import { MockLogs } from "./mock_log"; export interface queryOptions { query: string; values?: any[]; qs?: internalQueryStructure | null; } export interface mockOptions { tableName: string; clause: Clause; result: (values: any[]) => {}; } export declare enum queryType { SELECT = 0, INSERT = 1, UPDATE = 2, BEGIN = 3, COMMIT = 4, ROLLBACK = 5 } export interface queryStructure { tableName?: string; type: queryType; values?: any[]; } interface internalQueryStructure extends queryStructure { query: string; columns?: string[]; whereClause?: string; suffix?: string; setClause?: string; } export declare class QueryRecorder { private static queries; private static ids; private static data; private static getQueryStructure; private static recordQuery; static newID(): ID; static getCurrentIDs(): ID[]; static getLastID(): ID; static getData(): Map; static filterData(tableName: string, filterfn: (row: Data) => boolean): Data[]; static clear(): void; static clearQueries(): void; static getCurrentQueries(): queryOptions[]; static validateQueryStructuresFromLogs(ml: MockLogs, expected: queryStructure[], skipSelect?: boolean): void; private static validateQuryStructuresImpl; static mockPool(pool: typeof Pool): void; } export {};