import type { ReadonlyJSONValue } from '../../../shared/src/json.ts'; import type { PrimaryKey } from '../../../zero-protocol/src/primary-key.ts'; import type { SchemaValue, TableSchema } from '../table-schema.ts'; export declare function table(name: TName): TableBuilder<{ name: TName; columns: {}; primaryKey: PrimaryKey; }>; export declare function string(): ColumnBuilder<{ type: "string"; optional: false; customType: T; }>; export declare function number(): ColumnBuilder<{ type: "number"; optional: false; customType: T; }>; export declare function boolean(): ColumnBuilder<{ type: "boolean"; optional: false; customType: T; }>; export declare function json(): ColumnBuilder<{ type: "json"; optional: false; customType: T; }>; export declare function enumeration(): ColumnBuilder<{ type: "string"; optional: false; customType: T; }>; export declare const column: { string: typeof string; number: typeof number; boolean: typeof boolean; json: typeof json; enumeration: typeof enumeration; }; export declare class TableBuilder { #private; constructor(schema: TShape); from(serverName: ServerName): TableBuilder; columns>>(columns: TColumns): TableBuilderWithColumns<{ name: TShape['name']; columns: { [K in keyof TColumns]: TColumns[K]['schema']; }; primaryKey: TShape['primaryKey']; }>; } export declare class TableBuilderWithColumns { #private; constructor(schema: TShape); primaryKey(...pkColumnNames: TPKColNames): TableBuilderWithColumns; get schema(): TShape; build(): TShape; } declare class ColumnBuilder> { #private; constructor(schema: TShape); from(serverName: ServerName): ColumnBuilder; optional(): ColumnBuilder & { optional: true; }>; get schema(): TShape; } export type { ColumnBuilder }; //# sourceMappingURL=table-builder.d.ts.map