import type { ColumnBuilderBaseConfig } from "../../column-builder.cjs"; import type { ColumnBaseConfig } from "../../column.cjs"; import { entityKind } from "../../entity.cjs"; import { type Equal } from "../../utils.cjs"; import { SingleStoreColumnBuilderWithAutoIncrement, SingleStoreColumnWithAutoIncrement } from "./common.cjs"; export type SingleStoreDecimalBuilderInitial = SingleStoreDecimalBuilder<{ name: TName; dataType: 'string'; columnType: 'SingleStoreDecimal'; data: string; driverParam: string; enumValues: undefined; generated: undefined; }>; export declare class SingleStoreDecimalBuilder> extends SingleStoreColumnBuilderWithAutoIncrement { static readonly [entityKind]: string; constructor(name: T['name'], config: SingleStoreDecimalConfig | undefined); } export declare class SingleStoreDecimal> extends SingleStoreColumnWithAutoIncrement { static readonly [entityKind]: string; readonly precision: number | undefined; readonly scale: number | undefined; readonly unsigned: boolean | undefined; mapFromDriverValue(value: unknown): string; getSQLType(): string; } export type SingleStoreDecimalNumberBuilderInitial = SingleStoreDecimalNumberBuilder<{ name: TName; dataType: 'number'; columnType: 'SingleStoreDecimalNumber'; data: number; driverParam: string; enumValues: undefined; generated: undefined; }>; export declare class SingleStoreDecimalNumberBuilder> extends SingleStoreColumnBuilderWithAutoIncrement { static readonly [entityKind]: string; constructor(name: T['name'], config: SingleStoreDecimalConfig | undefined); } export declare class SingleStoreDecimalNumber> extends SingleStoreColumnWithAutoIncrement { static readonly [entityKind]: string; readonly precision: number | undefined; readonly scale: number | undefined; readonly unsigned: boolean | undefined; mapFromDriverValue(value: unknown): number; mapToDriverValue: StringConstructor; getSQLType(): string; } export type SingleStoreDecimalBigIntBuilderInitial = SingleStoreDecimalBigIntBuilder<{ name: TName; dataType: 'bigint'; columnType: 'SingleStoreDecimalBigInt'; data: bigint; driverParam: string; enumValues: undefined; generated: undefined; }>; export declare class SingleStoreDecimalBigIntBuilder> extends SingleStoreColumnBuilderWithAutoIncrement { static readonly [entityKind]: string; constructor(name: T['name'], config: SingleStoreDecimalConfig | undefined); } export declare class SingleStoreDecimalBigInt> extends SingleStoreColumnWithAutoIncrement { static readonly [entityKind]: string; readonly precision: number | undefined; readonly scale: number | undefined; readonly unsigned: boolean | undefined; mapFromDriverValue: BigIntConstructor; mapToDriverValue: StringConstructor; getSQLType(): string; } export interface SingleStoreDecimalConfig { precision?: number; scale?: number; unsigned?: boolean; mode?: T; } export declare function decimal(): SingleStoreDecimalBuilderInitial<''>; export declare function decimal(config: SingleStoreDecimalConfig): Equal extends true ? SingleStoreDecimalNumberBuilderInitial<''> : Equal extends true ? SingleStoreDecimalBigIntBuilderInitial<''> : SingleStoreDecimalBuilderInitial<''>; export declare function decimal(name: TName, config?: SingleStoreDecimalConfig): Equal extends true ? SingleStoreDecimalNumberBuilderInitial : Equal extends true ? SingleStoreDecimalBigIntBuilderInitial : SingleStoreDecimalBuilderInitial;