import type { ColumnBuilderBaseConfig } from "../../column-builder.js"; import type { ColumnBaseConfig } from "../../column.js"; import { entityKind } from "../../entity.js"; import type { AnySQLiteTable } from "../table.js"; import { type Equal, type Writable } from "../../utils.js"; import { SQLiteColumn, SQLiteColumnBuilder } from "./common.js"; export type SQLiteTextBuilderInitial = SQLiteTextBuilder<{ name: TName; dataType: 'string'; columnType: 'SQLiteText'; data: TEnum[number]; driverParam: string; enumValues: TEnum; length: TLength; }>; export declare class SQLiteTextBuilder & { length?: number | undefined; }> extends SQLiteColumnBuilder { static readonly [entityKind]: string; constructor(name: T['name'], config: SQLiteTextConfig<'text', T['enumValues'], T['length']>); } export declare class SQLiteText & { length?: number | undefined; }> extends SQLiteColumn { static readonly [entityKind]: string; readonly enumValues: T["enumValues"]; readonly length: T['length']; constructor(table: AnySQLiteTable<{ name: T['tableName']; }>, config: SQLiteTextBuilder['config']); getSQLType(): string; } export type SQLiteTextJsonBuilderInitial = SQLiteTextJsonBuilder<{ name: TName; dataType: 'json'; columnType: 'SQLiteTextJson'; data: unknown; driverParam: string; enumValues: undefined; generated: undefined; }>; export declare class SQLiteTextJsonBuilder> extends SQLiteColumnBuilder { static readonly [entityKind]: string; constructor(name: T['name']); } export declare class SQLiteTextJson> extends SQLiteColumn { static readonly [entityKind]: string; getSQLType(): string; mapFromDriverValue(value: string): T['data']; mapToDriverValue(value: T['data']): string; } export type SQLiteTextConfig = TMode extends 'text' ? { mode?: TMode; length?: TLength; enum?: TEnum; } : { mode?: TMode; }; export declare function text(): SQLiteTextBuilderInitial<'', [string, ...string[]], undefined>; export declare function text, L extends number | undefined, TMode extends 'text' | 'json' = 'text' | 'json'>(config?: SQLiteTextConfig, L>): Equal extends true ? SQLiteTextJsonBuilderInitial<''> : SQLiteTextBuilderInitial<'', Writable, L>; export declare function text, L extends number | undefined, TMode extends 'text' | 'json' = 'text' | 'json'>(name: TName, config?: SQLiteTextConfig, L>): Equal extends true ? SQLiteTextJsonBuilderInitial : SQLiteTextBuilderInitial, L>;