import { DataType } from '..';
import { FilterOperator } from '.';
interface Result {
    data: DataType;
    status: number;
    statusText: string;
}
export declare function parseOperator(operator: FilterOperator): NSCSupabasePostgresFilterBuilderOperator;
export declare class PostgresTransformBuilder implements PromiseLike<any> {
    native_: NSCSupabasePostgresTransformBuilder;
    static fromNative(value: NSCSupabasePostgresTransformBuilder): PostgresTransformBuilder;
    get native(): NSCSupabasePostgresTransformBuilder;
    csv(): this;
    limit(count: number): this;
    maybeSingle(): this;
    order(column: string, options?: {
        ascending?: boolean;
        nullsFirst?: boolean;
        referencedTable?: string;
    }): this;
    range(from: number, to: number, referencedTable?: string): this;
    select(columns: string): this;
    single(): PostgresTransformBuilder;
    then<TResult1 = Result, TResult2 = never>(onfulfilled?: (value: any) => TResult1 | PromiseLike<TResult1>, onrejected?: (reason: any) => TResult2 | PromiseLike<TResult2>): PromiseLike<TResult1 | TResult2>;
}
export declare class PostgresFilterBuilder extends PostgresTransformBuilder {
    native_: NSCSupabasePostgresFilterBuilder;
    static fromNative(value: NSCSupabasePostgresFilterBuilder): PostgresFilterBuilder;
    get native(): NSCSupabasePostgresFilterBuilder;
    containedBy(column: string, value: DataType): PostgresFilterBuilder;
    contains(column: string, value: DataType): PostgresFilterBuilder;
    eq(column: string, value: DataType): this;
    gt(column: string, value: DataType): this;
    gte(column: string, value: DataType): this;
    ilike(column: string, pattern: string): this;
    in(column: string, pattern: DataType[]): this;
    is(column: string): this;
    isValue(column: string, value: boolean): this;
    like(column: string, pattern: string): this;
    lt(column: string, value: DataType): this;
    lte(column: string, value: DataType): this;
    match(query: Record<string, DataType>): this;
    neq(column: string, value: DataType): this;
    not(column: string, operator: FilterOperator, value: DataType): this;
    or(filters: string, options: {
        foreignTable?: string;
        referencedTable?: string;
    }): this;
    overlaps(column: string, value: DataType): this;
    rangeAdjacent(column: string, range: DataType): this;
    rangeGt(column: string, range: DataType): this;
    rangeGte(column: string, range: DataType): this;
    rangeLt(column: string, range: DataType): this;
    rangeLte(column: string, range: DataType): this;
    textSearch(column: string, query: DataType, options?: {
        config?: string;
        type?: 'plain' | 'phrase' | 'websearch';
    }): this;
}
export declare class SupabasePostgresClient {
    native_: NSCSupabasePostgres;
    get native(): NSCSupabasePostgres;
    static fromNative(value: NSCSupabasePostgres): SupabasePostgresClient;
    from(table: string): SupabasePostgresQueryBuilder;
    schema(schema: string): SupabasePostgresClient;
}
export declare class SupabasePostgresQueryBuilder {
    native_: NSCSupabasePostgresQueryBuilder;
    get native(): NSCSupabasePostgresQueryBuilder;
    static fromNative(value: NSCSupabasePostgresQueryBuilder): SupabasePostgresQueryBuilder;
    insert(values: Record<any, DataType> | DataType[], options?: {
        count?: 'exact' | 'planned' | 'estimated';
        defaultToNull?: boolean;
    }): PostgresFilterBuilder;
    update(values: Record<any, DataType>, options?: {
        count?: 'exact' | 'planned' | 'estimated';
    }): PostgresFilterBuilder;
    upsert(values: Record<any, DataType> | DataType[], options?: {
        count?: 'exact' | 'planned' | 'estimated';
        defaultToNull?: boolean;
        ignoreDuplicates?: boolean;
        onConflict?: string;
    }): PostgresFilterBuilder;
    delete(options?: {
        count?: 'exact' | 'planned' | 'estimated';
    }): PostgresFilterBuilder;
    select(columns?: string, { head, count, }?: {
        head?: boolean;
        count?: 'exact' | 'planned' | 'estimated';
    }): PostgresFilterBuilder;
}
export {};
