import { RequestClient, RequestOptions } from '@segment/actions-core';
import { ModifiedResponse } from '@segment/actions-core';
export type SimpleValue = string | number | boolean;
type BatchAssertion = {
    object: string;
    mode: 'create-or-update';
    matching_attribute: string;
    multiselect_values: 'append';
    values: Record<string, null | SimpleValue | Array<SimpleValue> | BatchAssertion | Array<BatchAssertion>>;
    received_at: string;
};
export type AssertResponse = {
    data: {
        id: {
            workspace_id: string;
            object_id: string;
            record_id: string;
        };
        created_at: string;
        values: Record<string, Array<unknown>>;
    };
};
interface ObjectResponse {
    api_slug: string;
    singular_noun: string;
}
export declare class AttioClient {
    private request;
    private api_url;
    constructor(request: RequestClient);
    assertRecord({ matching_attribute, object, values, requestOptions }: {
        matching_attribute: string;
        object: string;
        values: Record<string, unknown>;
        requestOptions?: Partial<RequestOptions>;
    }): Promise<ModifiedResponse<AssertResponse>>;
    batchAssert({ assertions, requestOptions }: {
        assertions: Array<BatchAssertion>;
        requestOptions?: Partial<RequestOptions>;
    }): Promise<ModifiedResponse<AssertResponse>>;
    listObjects(): Promise<Array<ObjectResponse>>;
}
export {};
