import { KintoRequest, HttpMethod, Permission } from "../types";
interface RequestOptions {
    safe?: boolean;
    headers?: Headers | Record<string, string> | string[][];
    method?: HttpMethod;
    last_modified?: number;
    patch?: boolean;
}
type AddAttachmentRequestOptions = RequestOptions & {
    last_modified?: number;
    filename?: string;
};
type RequestBody = {
    data?: any;
    permissions?: Partial<Record<Permission, string[]>>;
};
interface RecordRequestBody extends RequestBody {
    data?: {
        id?: string;
        last_modified?: number;
        [key: string]: any;
    };
}
/**
 * @private
 */
export declare function createRequest(path: string, { data, permissions }: RequestBody, options?: RequestOptions): KintoRequest;
/**
 * @private
 */
export declare function updateRequest(path: string, { data, permissions }: RecordRequestBody, options?: RequestOptions): KintoRequest;
/**
 * @private
 */
export declare function jsonPatchPermissionsRequest(path: string, permissions: {
    [key in Permission]?: string[];
}, opType: string, options?: RequestOptions): KintoRequest;
/**
 * @private
 */
export declare function deleteRequest(path: string, options?: RequestOptions): KintoRequest;
/**
 * @private
 */
export declare function addAttachmentRequest(path: string, dataURI: string, { data, permissions }?: RecordRequestBody, options?: AddAttachmentRequestOptions): KintoRequest;
export {};
