import { type SybaseDialect } from "../dialect.js";
import type { SybaseSession, SybaseTransactionSession } from "../session.js";
export interface SybaseInsertResult {
    rowCount: number;
    /**
     * Last @@identity value (for tables with identity columns).
     * When inserting multiple rows, only the identity of the LAST inserted row is returned
     * (Sybase ASE limitation — no OUTPUT/RETURNING clause support).
     */
    insertId?: number;
    affectedRows: number;
}
export declare class SybaseInsertBuilder {
    private readonly dialect;
    private readonly session;
    private table;
    private insertValues;
    constructor(table: any, dialect: SybaseDialect, session: SybaseSession | SybaseTransactionSession);
    values(values: Record<string, unknown> | Record<string, unknown>[]): this;
    toSQL(): string;
    execute(): Promise<SybaseInsertResult>;
    then<TResult1 = SybaseInsertResult, TResult2 = never>(onfulfilled?: ((value: SybaseInsertResult) => TResult1 | PromiseLike<TResult1>) | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null): Promise<TResult1 | TResult2>;
    private hasIdentityColumn;
    private buildSql;
    private buildInsertStatements;
}
//# sourceMappingURL=insert.d.ts.map