import type { Formatter } from "@tai-kun/surrealdb/formatter";
import PreparedQuery from "./prepared-query";
import Raw, { type RawValue } from "./raw";
import Slot from "./slot";
export interface Surql {
    <TValues extends unknown[] = unknown[]>(texts: readonly string[] | TemplateStringsArray, ...values: TValues): PreparedQuery<Extract<TValues[number], Slot>>;
    raw: {
        (value: RawValue): Raw;
    };
    slot: {
        <const TName extends string, TValue = unknown>(name: TName): Slot<TName, true, TValue | undefined>;
        <const TName extends string, TValue>(name: TName, defaultValue: TValue): Slot<TName, false, TValue>;
    };
}
export interface CreateSurqlConfig {
    readonly formatter: Formatter;
    readonly varPrefix?: string | undefined;
}
export default function createSurql(config: CreateSurqlConfig): Surql;
//# sourceMappingURL=create-surql.d.ts.map