import { EnforceNonEmptyRecord, ValueRecord } from '../../record'; import { Value } from '../../value'; import { Table } from '../one/table'; import { Subtable } from '../subtable'; import { SelectRows } from '../selection/select_rows'; import { SelectVector } from '../selection/select_vector'; import { Constructor, SelectStatement } from '../../statements/select_statement'; export declare class SortFourTables { private firstConstructor; private secondConstructor; private thirdConstructor; private fourthConstructor; private readonly statement; constructor(firstConstructor: Constructor, secondConstructor: Constructor, thirdConstructor: Constructor, fourthConstructor: Constructor, statement: SelectStatement); thenBy(sortBy: (first: T1, second: T2, third: T3, fourth: T4) => Value): SortFourTables; thenDescendinglyBy(sortBy: (first: T1, second: T2, third: T3, fourth: T4) => Value): SortFourTables; select(firstName: string, secondName: string, thirdName: string, fourthName: string): SelectRows<{ [first in K]: T1; } & { [second in K]: T2; } & { [third in K]: T3; } & { [fourth in K]: T4; }>; map(f: (first: T1, second: T2, third: T3, fourth: T4) => EnforceNonEmptyRecord & U): SelectRows; map(tableInSubquery: Table, f: (s: Subtable, first: T1, second: T2, third: T3, fourth: T4) => EnforceNonEmptyRecord & U): SelectRows; get(f: (first: T1, second: T2, third: T3, fourth: T4) => U): SelectVector; }