import { DataWrapper, APIClient, type DataWrapperCtor } from '@awell-health/extensions-core';
import { type settings } from '../../settings';
import { type AppointmentWithId, type Appointment, type Task, type TaskWithId, type Patient, type PatientWithId, type CreatingQuestionnaireResponses, type QuestionnaireResponse } from '../validation';
import { type CoverageWithId, type Coverage } from '../validation/coverage.zod';
import { type Claim } from '../validation/claim';
import type { AppointmentWithIdResponse, CanvasAPIClientConstrutorProps, Id, TaskWithIdResponse, PatientWithIdResponse } from './type';
export declare class CanvasDataWrapper extends DataWrapper {
    createAppointment(data: Appointment): Promise<Id>;
    getAppointment(id: string): Promise<AppointmentWithIdResponse>;
    updateAppointment(data: AppointmentWithId): Promise<Id>;
    createTask(data: Task): Promise<Id>;
    updateTask(data: TaskWithId): Promise<Id>;
    getTask(id: string): Promise<TaskWithId>;
    createPatient(data: Patient): Promise<Id>;
    updatePatient(data: PatientWithId): Promise<Id>;
    getPatient(id: string): Promise<PatientWithIdResponse>;
    createQuestionnaireResponses(data: CreatingQuestionnaireResponses): Promise<Id>;
    getQuestionnaireResponse(id: string): Promise<QuestionnaireResponse>;
    createCoverage(data: Coverage): Promise<Id>;
    updateCoverage(data: CoverageWithId): Promise<Id>;
    createClaim(data: Claim): Promise<Id>;
}
export declare class CanvasAPIClient extends APIClient<CanvasDataWrapper> {
    readonly ctor: DataWrapperCtor<CanvasDataWrapper>;
    constructor({ authUrl, requestConfig, ...opts }: CanvasAPIClientConstrutorProps);
    createAppointment(obj: Appointment): Promise<Id>;
    getAppointment(id: string): Promise<AppointmentWithIdResponse>;
    updateAppointment(obj: AppointmentWithId): Promise<Id>;
    createTask(obj: Task): Promise<Id>;
    getTask(id: string): Promise<TaskWithIdResponse>;
    updateTask(obj: TaskWithId): Promise<Id>;
    createPatient(obj: Patient): Promise<Id>;
    updatePatient(obj: PatientWithId): Promise<Id>;
    getPatient(id: string): Promise<PatientWithIdResponse>;
    createQuestionnaireResponses(obj: CreatingQuestionnaireResponses): Promise<Id>;
    getQuestionnaireResponse(id: string): Promise<QuestionnaireResponse>;
    createCoverage(obj: Coverage): Promise<Id>;
    updateCoverage(obj: CoverageWithId): Promise<Id>;
    createClaim(obj: Claim): Promise<Id>;
}
export declare const makeAPIClient: (payloadSettings: Record<keyof typeof settings, string | undefined>) => CanvasAPIClient;
