import { Column, Index, Relationship, Table } from '../../internal-types';
export interface FormatTableOptions {
    buffer: string[];
    table: Table;
}
export interface FormatColumnOptions {
    buffer: string[];
    column: Column;
    isComma: boolean;
    spaceSize: MaxLength;
}
export interface FormatRelationOptions {
    buffer: string[];
    relationship: Relationship;
    fkNames: Name[];
}
export interface FormatIndexOptions {
    buffer: string[];
    index: Index;
    indexNames: Name[];
}
export interface FormatCommentOptions {
    buffer: string[];
    table: Table;
}
export interface Name {
    id: string;
    name: string;
}
export interface KeyColumn {
    start: Column[];
    end: Column[];
}
export declare function formatNames<T extends {
    name: string;
}>(list: T[], backtick?: string, backtick2?: string): string;
export interface MaxLength {
    name: number;
    dataType: number;
}
export declare function formatSize(columns: Column[]): MaxLength;
export declare function formatSpace(size: number): string;
export declare function primaryKey(columns: Column[]): boolean;
export declare function primaryKeyColumns(columns: Column[]): Column[];
export declare function unique(columns: Column[]): boolean;
export declare function uniqueColumns(columns: Column[]): Column[];
export declare function getBracket(bracketType: number): string;
export declare function orderByNameASC<T extends {
    name: string;
}>(a: T, b: T): 1 | -1 | 0;
export declare function autoName<T extends {
    id: string;
    name: string;
}>(list: T[], id: string, name: string, num?: number): string;
export declare function toOrderName(orderType: number): "" | "ASC" | "DESC";
