import { type HasQuery, internalData, internalQuery, internalSelection } from '../Internal.js'; import type { IsMysql, IsPostgres, IsSqlite, QueryMeta } from '../MetaData.js'; import { type QueryData, SingleQuery } from '../Queries.js'; import { type Selection, type SelectionInput, type SelectionRow } from '../Selection.js'; import { type Sql } from '../Sql.js'; import type { TableDefinition, TableInsert, TableRow } from '../Table.js'; import type { InsertQuery, OnConflict, OnConflictSet, OnConflictUpdate } from './Query.js'; export declare class Insert extends SingleQuery implements HasQuery { readonly [internalData]: QueryData & InsertQuery; readonly [internalSelection]?: Selection; constructor(data: QueryData & InsertQuery); get [internalQuery](): Sql; } declare class InsertCanReturn extends Insert { returning(this: InsertCanReturn): Insert>, Meta>; returning(this: InsertCanReturn, returning: Input): Insert>, Meta>; } declare class InsertCanConflict extends InsertCanReturn { onConflictDoNothing(this: InsertCanConflict, onConflictDoNothing?: OnConflict): InsertCanConflict; onConflictDoUpdate(this: InsertCanConflict, onConflict: OnConflictUpdate): InsertCanConflict; onDuplicateKeyUpdate(this: InsertCanConflict, onDuplicateKeyUpdate: OnConflictSet): InsertCanConflict; } export declare class InsertInto { [internalData]: QueryData & InsertQuery; constructor(data: QueryData & InsertQuery); values(value: TableInsert): InsertCanConflict; values(values: Array>): InsertCanConflict; select(query: SingleQuery>, Meta>): InsertCanConflict; } export declare function insertQuery(query: InsertQuery): Sql; export {};