import { FormatContext } from './format-context'; export declare class Formatter { private handlers; extend(formatter: Formatter): this; add(handler: FormatHandle): this; canHandle(value: any): boolean; format(value: any, ctx: FormatContext): string; } export declare enum FormatType { Sql = 0, Value = 1, Condition = 2, Table = 3, Join = 4, OrderBy = 5 } export interface FormatHandle { type: FormatType | FormatType[]; canHandle(param: any): boolean; handle(param: T, ctx: FormatContext, formatter: Formatter): string; }