export interface DatabaseSchemaMetadata {
    tables: Table[];
    schemas?: Schema[];
}
export declare class Table {
    id?: string;
    type: TableType;
    name: string;
    schema?: string;
    columns: Column[];
    keys?: Key[];
    templates?: Template[];
    constructor(name: string, type: TableType, schema?: string);
}
export declare enum TableType {
    TABLE = "TABLE",
    VIEW = "VIEW",
    ALIAS = "ALIAS",
    COLLECTION = "COLLECTION"
}
export declare class Column {
    name: string;
    type: string;
    escapedName?: string;
    constructor(name: string, type: string, escapedName?: string);
}
export interface PrimaryKey {
    name: string;
    type: 'primary key';
    columns?: string[];
}
interface ForeignKey {
    name: string;
    type: 'foreign key';
}
type Key = PrimaryKey | ForeignKey;
export declare class Template {
    title: string;
    body: string;
}
export declare class Schema {
    id?: string;
    name: string;
    constructor(name: string);
}
export {};
//# sourceMappingURL=database.d.ts.map