import { Client } from '../client'; import { BaseError } from '../errors'; import { UriHelper, HandlerQuery } from '../uri-helper'; import { ThBaseHandler } from '../base'; import { ServicesObject } from './services'; export interface StaffOptions { user?: string; base?: string; } export interface StaffQueryOrOptions { limit?: number; uri?: string; query?: { deleted?: boolean; active?: boolean; start?: string; staff_number?: string; lastname?: string; firstname?: string; email?: string; q?: string; staff_groups?: string; cursor_field?: string; }; } export interface StaffResponse { data: StaffMember[]; metadata: Record; errors?: ErrorObject[]; next?: () => Promise; } export interface StaffMemberResponse { data?: StaffMember; metadata?: { count?: number; patch?: any; }; msg?: string; errors?: Record; } export interface StaffAddress { street?: string; street_number?: number; locality?: string; region?: string; postal_code?: number; country?: string; type?: string; } export interface StaffPhoneNumbers { any?: number; home?: number; mobile?: number; work?: number; } export interface PinRequest { provided_pin?: string; staff_id?: string; pin_length?: number; } export interface PinResponse { pin?: string; } export interface StaffNumberRequest { provided_staff_number?: string; staff_id?: string; } export interface StaffNumberResponse { number?: string; } export interface StaffQuery { staff_id_template?: string; generate_staff_id?: boolean; } export interface HandleStaffQuery extends HandlerQuery { query?: StaffQuery; } export interface ErrorObject { id: string; label: string; errorDetails: Record; } export interface StaffMember { firstname?: string; lastname?: string; displayname?: string; phonenumbers?: StaffPhoneNumbers; email?: string; addresses?: StaffAddress; pin?: number; metadata?: Record; scopes?: string[]; staff_number?: number; discounts?: Record; date_of_birth?: string | null; short_code?: number; locations?: string[]; default?: boolean; services: null | string[]; } export interface StaffItem { staff_number?: string; firstname?: string; lastname?: string; email?: string; phone?: Record; } export interface MakeUserRequest { user: string; } export interface SearchQuery { q: string; fields?: string[]; } export interface StaffServicesResponse { data: ServicesObject[] | null; metadata: { count: number; }; } export declare class Staff extends ThBaseHandler { static baseEndpoint: string; endpoint: string; http: Client; options: StaffOptions; uriHelper: UriHelper; constructor(options: StaffOptions, http: Client); getAll(queryOrOptions?: StaffQueryOrOptions): Promise; create(staffMember: StaffMember, query?: HandleStaffQuery): Promise; getOne(staffId: string): Promise; get(staffId: string): Promise; put(staffId: string, staff: StaffMember): Promise; delete(staffId: string): Promise; getPin(providedPin?: PinRequest): Promise; getStaffNumber(providedStaffNumber?: StaffNumberRequest): Promise; getFilters(queryOrOptions?: StaffQueryOrOptions): Promise; getServices(staffId: string): Promise; makeUser(staffID: string, makeUserObj: MakeUserRequest): Promise; meta(query?: StaffQueryOrOptions | undefined): Promise; search(query: string | SearchQuery): Promise; } export declare class StaffFetchFailed extends BaseError { message: string; name: string; constructor(message?: string, properties?: Record); } export declare class StaffFetchOneFailed extends BaseError { message: string; name: string; constructor(message?: string, properties?: Record); } export declare class StaffPutFailed extends BaseError { message: string; name: string; constructor(message?: string, properties?: Record); } export declare class StaffDeleteFailed extends BaseError { message: string; name: string; constructor(message?: string, properties?: Record); } export declare class StaffMemberCreateFailed extends BaseError { message: string; name: string; constructor(message?: string, properties?: Record); } export declare class StaffPinGetFailed extends BaseError { message: string; name: string; constructor(message?: string, properties?: Record); } export declare class StaffNumberGetFailed extends BaseError { message: string; name: string; constructor(message?: string, properties?: Record); } export declare class MakeUserStaffFailed extends BaseError { message: string; name: string; constructor(message?: string, properties?: Record); } export declare class StaffMetaFailed extends BaseError { message: string; name: string; constructor(message?: string, properties?: Record); } export declare class StaffSearchFailed extends BaseError { message: string; name: string; constructor(message?: string, properties?: Record); }