import { RestException } from '@models/exceptions';
import { AppointmentsApiApiV2AppointmentsAppointmentIdGetRequest, AppointmentsApiApiV2AppointmentsAppointmentIdPayPostRequest, AppointmentsApiApiV2AppointmentsAppointmentIdPutRequest, AppointmentsApiApiV2AppointmentsGetRequest, AppointmentsApiApiV2AppointmentsRequestIdPostRequest } from 'ch-api-client-typescript2/lib/api/appointments-api';
import { AppointmentModel } from 'ch-api-client-typescript2/lib/models/appointment-model';
import { AppointmentTimetablesModel } from 'ch-api-client-typescript2/lib/models/appointment-timetables-model';
import { AppointmentType } from 'ch-api-client-typescript2/lib/models/appointment-type';
import { AppointmentsModel } from 'ch-api-client-typescript2/lib/models/appointments-model';
import { SWRConfiguration } from 'swr';
import { SWRMutationConfiguration } from 'swr/mutation';
export declare const createAppointmentSwrMutation: (operationName?: string) => {
    createAppointmentSuccess: string | undefined;
    createAppointmentError: RestException | undefined;
    createAppointment: import("swr/mutation").TriggerWithArgs<string, RestException, any, AppointmentsApiApiV2AppointmentsRequestIdPostRequest>;
    resetCreateAppointment: () => void;
    isLoadingCreateAppointment: boolean;
};
export declare const loadAppointmentsSwr: (payload: AppointmentsApiApiV2AppointmentsGetRequest, shouldFetch?: boolean, operationName?: string, config?: SWRConfiguration<AppointmentsModel, RestException>) => {
    appointments: AppointmentsModel | undefined;
    loadAppointmentError: RestException | undefined;
    isLoadingAppointments: boolean;
    isValidatingAppointments: boolean;
    revalidate: import("swr/_internal").KeyedMutator<AppointmentsModel>;
};
export declare const loadAppointmentSwr: (payload: AppointmentsApiApiV2AppointmentsAppointmentIdGetRequest, shouldFetch?: boolean, operationName?: string) => {
    appointment: AppointmentModel | undefined;
    loadAppointmentError: RestException | undefined;
    isLoadingAppointment: boolean;
    revalidate: import("swr/_internal").KeyedMutator<AppointmentModel>;
};
export declare const putAppointmentSwrMutation: (operationName?: string) => {
    updateAppointmentSuccess: string | undefined;
    updateAppointmentError: RestException | undefined;
    updateAppointment: import("swr/mutation").TriggerWithArgs<string, RestException, any, AppointmentsApiApiV2AppointmentsAppointmentIdPutRequest>;
    resetupdateAppointment: () => void;
    isLoadingUpdateAppointment: boolean;
};
export declare const postAppointmentPaymentSwrMutation: (operationName?: string, config?: SWRMutationConfiguration<string, RestException, any, string>) => {
    postAppointmentPaymentKeySuccess: string | undefined;
    postAppointmentPaymentKeyError: RestException | undefined;
    postAppointmentPaymentKey: import("swr/mutation").TriggerWithArgs<string, RestException, any, AppointmentsApiApiV2AppointmentsAppointmentIdPayPostRequest>;
    resetPostAppointmentPaymentKey: () => void;
    isLoadingUpdateAppointment: boolean;
};
export declare const loadAppointmentTimetablesSwr: (payload: {
    type: AppointmentType;
    payload: {
        hospitalId?: string | null;
        doctorAffiliationId?: string | null;
        dealId?: string | null;
        dealPackageId?: string | null;
        specialtyId?: string | null;
        serviceId?: string | null;
        year?: number | undefined;
        month?: number | undefined;
        timeZone?: string | undefined;
        isExternal?: boolean;
    };
}, shouldFetch?: boolean, operationName?: string) => {
    appointmentTimetables: AppointmentTimetablesModel | undefined;
    loadAppointmentTimetablesError: RestException | undefined;
    isLoadingAppointmentTimetables: boolean;
    revalidate: import("swr/_internal").KeyedMutator<AppointmentTimetablesModel>;
};
