/**
 * Sybase column type builders.
 *
 * Creates column objects that pass drizzle-orm's `is(col, Column)` check
 * by using the same entityKind symbol mechanism. This ensures compatibility
 * with drizzle-orm operators (eq, ne, gt, sql template, etc.).
 *
 * Does NOT depend on drizzle-orm/mssql-core.
 */
declare const entityKind: unique symbol;
/**
 * Column instance that is attached to tables. Recognized by drizzle-orm's
 * `is(col, Column)` because our prototype chain includes a class with
 * `static [entityKind] = "Column"`.
 */
export declare class SybaseColumn {
    static [entityKind]: string;
    name: string;
    table: any;
    isAlias: boolean;
    primary: boolean;
    notNull: boolean;
    default: unknown;
    defaultFn?: () => unknown;
    onUpdateFn?: () => unknown;
    hasDefault: boolean;
    dataType: string;
    columnType: string;
    identity: boolean;
    mapFromDriverValue: (value: any) => any;
    mapToDriverValue: (value: any) => any;
    constructor(table: any, config: SybaseColumnConfig);
    getSQLType(): string;
    shouldDisableInsert(): boolean;
    getSQL(): any;
}
export interface SybaseColumnConfig {
    name: string;
    primaryKey?: boolean;
    notNull?: boolean;
    default?: unknown;
    defaultFn?: () => unknown;
    onUpdateFn?: () => unknown;
    hasDefault?: boolean;
    dataType?: string;
    columnType?: string;
    identity?: boolean;
    mapFromDriverValue?: (value: any) => any;
    mapToDriverValue?: (value: any) => any;
}
export declare class SybaseColumnBuilder {
    /** @internal */
    _config: SybaseColumnConfig;
    constructor(name: string, sqlType: string);
    primaryKey(): this;
    notNull(): this;
    identity(): this;
    default(value: unknown): this;
    $defaultFn(fn: () => unknown): this;
    $onUpdateFn(fn: () => unknown): this;
    /**
     * Set a custom mapToDriverValue function for this column.
     */
    $mapToDriver(fn: (value: any) => any): this;
    /**
     * Set a custom mapFromDriverValue function for this column.
     */
    $mapFromDriver(fn: (value: any) => any): this;
    /** @internal — called by sybaseTable to produce the final Column object */
    build(table: any): SybaseColumn;
}
export declare const int: (name: string) => SybaseColumnBuilder;
export declare const bigint: (name: string) => SybaseColumnBuilder;
export declare const smallint: (name: string) => SybaseColumnBuilder;
export declare const tinyint: (name: string) => SybaseColumnBuilder;
export declare const varchar: (name: string, opts?: {
    length?: number;
}) => SybaseColumnBuilder;
export declare const nvarchar: (name: string, opts?: {
    length?: number;
}) => SybaseColumnBuilder;
export declare const char: (name: string, opts?: {
    length?: number;
}) => SybaseColumnBuilder;
export declare const nchar: (name: string, opts?: {
    length?: number;
}) => SybaseColumnBuilder;
export declare const text: (name: string) => SybaseColumnBuilder;
export declare const ntext: (name: string) => SybaseColumnBuilder;
export declare const datetime: (name: string) => SybaseColumnBuilder;
export declare const smalldatetime: (name: string) => SybaseColumnBuilder;
export declare const numeric: (name: string, opts?: {
    precision?: number;
    scale?: number;
}) => SybaseColumnBuilder;
export declare const decimal: (name: string, opts?: {
    precision?: number;
    scale?: number;
}) => SybaseColumnBuilder;
export declare const float: (name: string) => SybaseColumnBuilder;
export declare const real: (name: string) => SybaseColumnBuilder;
export declare const money: (name: string) => SybaseColumnBuilder;
export declare const smallmoney: (name: string) => SybaseColumnBuilder;
export declare const bit: (name: string) => SybaseColumnBuilder;
export declare const binary: (name: string, opts?: {
    length?: number;
}) => SybaseColumnBuilder;
export declare const varbinary: (name: string, opts?: {
    length?: number;
}) => SybaseColumnBuilder;
export declare const image: (name: string) => SybaseColumnBuilder;
export {};
//# sourceMappingURL=index.d.ts.map