import { AxiosRequestConfig, RawAxiosRequestHeaders } from 'axios';
import { Ref } from 'vue';
import { APIConsumer } from '../../api_consumer/namespace';
import { IViewSetApi, PrimaryKeyType } from './namespace';
export default class ViewSetApi<T> implements IViewSetApi<T> {
    protected baseUrl: Ref<string>;
    protected headers: RawAxiosRequestHeaders;
    protected trailingSlash: boolean;
    constructor(url: string | Ref<string>, trailingSlash?: boolean);
    compose_url(url: string): string;
    definition_url(url: string): string;
    data_url(url: string): string;
    detail_url: (pk?: PrimaryKeyType) => string;
    componentDefinition: (pk?: PrimaryKeyType, config?: AxiosRequestConfig) => Promise<APIConsumer.TableUXDefinition>;
    list: (config?: AxiosRequestConfig) => Promise<T[]>;
    retrieve: (pk: PrimaryKeyType, config?: AxiosRequestConfig) => Promise<T>;
    create: (data: T, config?: AxiosRequestConfig) => Promise<T>;
    update: (pk: PrimaryKeyType, data: T, config?: AxiosRequestConfig) => Promise<T>;
    delete: (pk: PrimaryKeyType, config?: AxiosRequestConfig) => Promise<T>;
}
//# sourceMappingURL=view-set-api.d.ts.map