import { AxiosInstance } from 'axios';
import Days from './constants/days';
import MeetingMethods from './constants/meeting-methods';
import Notifications from './constants/notifications';
import Origins from './constants/origins';
import Visibilities from './constants/visibilities';
import Answer from './models/answer';
import Attendee from './models/attendee';
import Client from './models/client';
import Preference from './models/preference';
import Response from './models/response';
import { AppointmentResource } from './resources/appointment';
import { FormResource } from './resources/form';
import { LocationResource } from './resources/location';
import { QuestionResource } from './resources/question';
import { QueueAppointmentResource } from './resources/queue-appointment';
import { ServiceResource } from './resources/service';
import { TimeSlotResource } from './resources/time-slot';
import { TimezoneResource } from './resources/timezone';
import { UserResource } from './resources/user';
import { WaitListResource } from './resources/wait-list';
import { WaitTimeResource } from './resources/wait-time';
export interface Filterable<T> {
    filter?: T;
    limit?: number;
    page?: number;
    sort?: string;
}
export interface IncludableParameters {
    include?: string;
}
export interface ModelInterface {
    getAttributes(): object;
}
export interface Pageable extends Sortable {
    on(page: number): this;
    take(limit: number): this;
}
export interface Resource {
    get(): Promise<any>;
}
export interface Sortable extends Resource {
    sortBy(sortable: string): this;
}
export { Answer, Attendee, Client, Days, MeetingMethods, Notifications, Origins, Preference, Response, Visibilities };
export declare class OpenApi {
    protected appointment: AppointmentResource;
    protected queueAppointment: QueueAppointmentResource;
    protected form: FormResource;
    protected client: AxiosInstance;
    protected domain?: string;
    protected list: WaitListResource;
    protected location: LocationResource;
    protected question: QuestionResource;
    protected service: ServiceResource;
    protected setting: Resource;
    protected slot: TimeSlotResource;
    protected timezone: TimezoneResource;
    protected user: UserResource;
    protected waitTime: WaitTimeResource;
    constructor(domain?: string);
    appointments(): AppointmentResource;
    queueAppointments(): QueueAppointmentResource;
    forms(): FormResource;
    locale(locale: string): this;
    lists(): WaitListResource;
    locations(): LocationResource;
    questions(): QuestionResource;
    services(): ServiceResource;
    settings(): Resource;
    slots(): TimeSlotResource;
    timezones(): TimezoneResource;
    users(): UserResource;
    waitTimes(): WaitTimeResource;
}
