interface DBQuery {
    setTable: (table: string) => this;
    create: () => string;
    setColumn?: (...columns: string[]) => this;
    setFilter?: (operator: string, condition: string) => this;
    setOrder?: (column: string, isDesc: boolean) => this;
    setValue?: (column: string, value: any) => this;
}

interface DBQueryBuilder<T> {
    setTable(table: string): this;
    setCommand(command: string): this;
    setColumn(...columns: string[]): this;
    setFilter(operator: string, condition: string): this;
    setOrder(column: string, isDesc: boolean): this;
    setValue(column: string, value: any): this;
    reset(): this;
    create(): T;
}
