import * as ts from 'typescript'; import { DatabaseDefinition, TableDefinition } from '../../parser'; import { TableIndex } from '../keys'; export declare type GetMethodName = 'get' | 'getAll'; export declare function createGetArgsTypeName(table: TableDefinition): string; export declare function typeReferenceForGetMethodByTable(table: TableDefinition): ts.TypeNode; export declare function createGetArgsTypeNode(table: TableDefinition): ts.TypeNode; export declare function createGetMethodSignaturesForTable(table: TableDefinition, database: DatabaseDefinition): ReadonlyArray; export declare type WithJoins = 'true' | 'false' | 'none' | 'default'; export declare function createOptionsParamForGetMethod({ withJoins, withCount, }: { withJoins: WithJoins; withCount: boolean; }): ts.ParameterDeclaration; export declare function createArgParamDeclaration(isRequired: boolean, typeNode: ts.TypeNode): ts.ParameterDeclaration; export declare function createGetMethodBaseReturnTypeForTable({ table, asUnion, withJoins, asArray, }: { table: TableDefinition; asUnion: boolean; withJoins: boolean; asArray: boolean; }): ts.TypeNode; export declare function createGetMethodReturnTypeForTable(args: { table: TableDefinition; asUnion: boolean; withJoins: boolean; asArray: boolean; }): ts.TypeNode; export declare function createGetMethodDeclarations({ table, database, methodBody, }: { table: TableDefinition; database: DatabaseDefinition; methodBody: ts.Block; }): ReadonlyArray; export declare function createGetMethod(table: TableDefinition, database: DatabaseDefinition): ReadonlyArray; export declare function createHandlingForGetByIndex({ tableIndex, methodName, argumentsArray, }: { tableIndex: TableIndex; methodName: GetMethodName; argumentsArray: ReadonlyArray; }): ReadonlyArray; export declare function createHandlingForGetByPrimaryKey({ methodName, argumentsArray, }: { methodName: GetMethodName; argumentsArray: ReadonlyArray; }): ReadonlyArray; export declare function createSafeHandlingForRequest({ table, database, methodName, }: { table: TableDefinition; database: DatabaseDefinition; methodName: GetMethodName; }): ts.IfStatement; export declare function createDBGetRequestVariable(): ts.Statement; export declare function createPredicateNameForIndex(table: TableDefinition, index: TableIndex): string; export declare function createIndexPredicates(table: TableDefinition, database: DatabaseDefinition): ReadonlyArray; export declare function typeNodesForIndexResolvingPrimaryKeys(index: TableIndex, database: DatabaseDefinition): ReadonlyArray; export declare function createGetArgsTypeDeclaration(table: TableDefinition, database: DatabaseDefinition): ts.TypeAliasDeclaration; export declare function createOnSuccessHandlerForGetMethod(table: TableDefinition, database: DatabaseDefinition, methodName: GetMethodName): ts.Statement;