import { A as AthenaGatewayCallOptions, a as AthenaConditionValue, b as AthenaConditionArrayValue, c as AthenaConditionOperator } from './types-DzCf3v76.mjs';
export { d as AthenaDeletePayload, e as AthenaFetchPayload, f as AthenaGatewayBaseOptions, g as AthenaGatewayCallLog, h as AthenaGatewayCondition, i as AthenaGatewayEndpointPath, j as AthenaGatewayHookConfig, k as AthenaGatewayHookResult, l as AthenaGatewayMethod, m as AthenaGatewayResponse, n as AthenaGatewayResponseLog, o as AthenaInsertPayload, p as AthenaUpdatePayload } from './types-DzCf3v76.mjs';

interface SupabaseResult<T> {
    data: T | null;
    error: string | null;
    status: number;
    raw: unknown;
}
type MutationSingleResult<Result> = Result extends Array<infer Item> ? Item | null : Result | null;
interface MutationQuery<Result> extends PromiseLike<SupabaseResult<Result>> {
    select(columns?: string | string[], options?: AthenaGatewayCallOptions): Promise<SupabaseResult<Result>>;
    returning(columns?: string | string[], options?: AthenaGatewayCallOptions): Promise<SupabaseResult<Result>>;
    single(columns?: string | string[], options?: AthenaGatewayCallOptions): Promise<SupabaseResult<MutationSingleResult<Result>>>;
    maybeSingle(columns?: string | string[], options?: AthenaGatewayCallOptions): Promise<SupabaseResult<MutationSingleResult<Result>>>;
    then<TResult1 = SupabaseResult<Result>, TResult2 = never>(onfulfilled?: ((value: SupabaseResult<Result>) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | undefined | null): Promise<TResult1 | TResult2>;
    catch<TResult = never>(onrejected?: ((reason: unknown) => TResult | PromiseLike<TResult>) | undefined | null): Promise<SupabaseResult<Result> | TResult>;
    finally(onfinally?: (() => void) | undefined | null): Promise<SupabaseResult<Result>>;
}
interface TableQueryBuilder<Row> {
    select<T = Row>(columns?: string | string[], options?: AthenaGatewayCallOptions): Promise<SupabaseResult<T>>;
    insert(values: Row | Row[], options?: AthenaGatewayCallOptions): MutationQuery<Row | Row[]>;
    upsert(values: Row | Row[], options?: AthenaGatewayCallOptions & {
        updateBody?: Partial<Row>;
        onConflict?: string | string[];
    }): MutationQuery<Row | Row[]>;
    update(values: Partial<Row>, options?: AthenaGatewayCallOptions): MutationQuery<Row[]>;
    delete(options?: AthenaGatewayCallOptions & {
        resourceId?: string;
    }): MutationQuery<Row | null>;
    eq(column: string, value: AthenaConditionValue): TableQueryBuilder<Row>;
    match(filters: Record<string, AthenaConditionValue>): TableQueryBuilder<Row>;
    range(from: number, to: number): TableQueryBuilder<Row>;
    limit(count: number): TableQueryBuilder<Row>;
    offset(count: number): TableQueryBuilder<Row>;
    gt(column: string, value: AthenaConditionValue): TableQueryBuilder<Row>;
    gte(column: string, value: AthenaConditionValue): TableQueryBuilder<Row>;
    lt(column: string, value: AthenaConditionValue): TableQueryBuilder<Row>;
    lte(column: string, value: AthenaConditionValue): TableQueryBuilder<Row>;
    neq(column: string, value: AthenaConditionValue): TableQueryBuilder<Row>;
    like(column: string, value: AthenaConditionValue): TableQueryBuilder<Row>;
    ilike(column: string, value: AthenaConditionValue): TableQueryBuilder<Row>;
    is(column: string, value: AthenaConditionValue): TableQueryBuilder<Row>;
    in(column: string, values: AthenaConditionArrayValue): TableQueryBuilder<Row>;
    contains(column: string, values: AthenaConditionArrayValue): TableQueryBuilder<Row>;
    containedBy(column: string, values: AthenaConditionArrayValue): TableQueryBuilder<Row>;
    not(columnOrExpression: string, operator?: AthenaConditionOperator, value?: AthenaConditionValue): TableQueryBuilder<Row>;
    or(expression: string): TableQueryBuilder<Row>;
    single<T = Row>(columns?: string | string[], options?: AthenaGatewayCallOptions): Promise<SupabaseResult<T | null>>;
    maybeSingle<T = Row>(columns?: string | string[], options?: AthenaGatewayCallOptions): Promise<SupabaseResult<T | null>>;
    reset(): TableQueryBuilder<Row>;
}
interface SupabaseClient {
    from<Row = unknown>(table: string): TableQueryBuilder<Row>;
}
declare function createClient(url: string, apiKey: string, options?: AthenaGatewayCallOptions): SupabaseClient;

export { AthenaGatewayCallOptions, type SupabaseClient, type SupabaseResult, type TableQueryBuilder, createClient };
