cliniko-api-client
Version:
TypeScript client for Cliniko API with full type safety
36 lines • 2.78 kB
TypeScript
import { Patient, Practitioner, AppointmentType, IndividualAppointment, Business, TreatmentNote, PaginatedResponse, QueryFilter, CreatePatientRequest, CreateAppointmentRequest, CreatePractitionerRequest, CreateTreatmentNoteRequest } from './types';
export declare class ClinikoClient {
private client;
constructor(apiKey?: string, baseUrl?: string, userEmail?: string);
private buildQueryParams;
getPatients(filters?: QueryFilter[], page?: number): Promise<PaginatedResponse<Patient>>;
getPatient(id: number): Promise<Patient>;
createPatient(patientData: CreatePatientRequest): Promise<Patient>;
updatePatient(id: number, patientData: Partial<Patient>): Promise<Patient>;
deletePatient(id: number): Promise<void>;
searchPatients(firstName?: string, lastName?: string, email?: string): Promise<PaginatedResponse<Patient>>;
getPractitioners(filters?: QueryFilter[], page?: number): Promise<PaginatedResponse<Practitioner>>;
getPractitioner(id: number): Promise<Practitioner>;
createPractitioner(practitionerData: CreatePractitionerRequest): Promise<Practitioner>;
updatePractitioner(id: number, practitionerData: Partial<Practitioner>): Promise<Practitioner>;
getAppointments(filters?: QueryFilter[], page?: number): Promise<PaginatedResponse<IndividualAppointment>>;
getAppointment(id: number): Promise<IndividualAppointment>;
createAppointment(appointmentData: CreateAppointmentRequest): Promise<IndividualAppointment>;
updateAppointment(id: number, appointmentData: Partial<IndividualAppointment>): Promise<IndividualAppointment>;
cancelAppointment(id: number, reason?: string): Promise<void>;
getTodaysAppointments(): Promise<PaginatedResponse<IndividualAppointment>>;
getAppointmentsByDateRange(startDate: Date, endDate: Date): Promise<PaginatedResponse<IndividualAppointment>>;
getAppointmentTypes(filters?: QueryFilter[]): Promise<PaginatedResponse<AppointmentType>>;
getAppointmentType(id: number): Promise<AppointmentType>;
createAppointmentType(appointmentTypeData: Partial<AppointmentType>): Promise<AppointmentType>;
getBusinesses(): Promise<PaginatedResponse<Business>>;
getBusiness(id: number): Promise<Business>;
getTreatmentNotes(filters?: QueryFilter[], page?: number): Promise<PaginatedResponse<TreatmentNote>>;
getTreatmentNote(id: number): Promise<TreatmentNote>;
createTreatmentNote(noteData: CreateTreatmentNoteRequest): Promise<TreatmentNote>;
updateTreatmentNote(id: number, noteData: Partial<TreatmentNote>): Promise<TreatmentNote>;
getTreatmentNotesForPatient(patientId: number): Promise<PaginatedResponse<TreatmentNote>>;
testConnection(): Promise<boolean>;
getAccountInfo(): Promise<void>;
}
//# sourceMappingURL=client.d.ts.map