declare const fragmentBrand: unique symbol; declare const identifierBrand: unique symbol; declare const boundValueBrand: unique symbol; export interface SqlFragment { readonly sql: string; readonly args: readonly unknown[]; readonly [fragmentBrand]: true; } interface SqlIdentifier { readonly name: string; readonly [identifierBrand]: true; } interface SqlBoundValue { readonly value: unknown; readonly [boundValueBrand]: true; } type SqlInterpolation = SqlFragment | SqlIdentifier | SqlBoundValue; export interface SqlTag { (strings: TemplateStringsArray, ...values: SqlInterpolation[]): SqlFragment; value(value: unknown): SqlBoundValue; ident(name: string): SqlIdentifier; join(fragments: readonly SqlFragment[], separator: SqlFragment): SqlFragment; in(values: readonly unknown[]): SqlFragment; } export declare function isSqlFragment(value: unknown): value is SqlFragment; export declare function getSqlFragmentParameterOffsets(fragment: SqlFragment): readonly number[]; export declare const sql: SqlTag; export {};