import { HTTPClient, FormFileData } from '../../../../utils/http';
import { CRUD } from '../../../../utils/crud';
import { PaginatedResponse } from '../../../../utils/types';
import { APIResponse } from '../../../../types';
import { CrossPlatformFileResponse } from '../../../../utils/compatibility';
import { Claim, ClaimContact, ClaimExtended, CreateClaimDTO, UpdateClaimDTO, QueryClaimDTO } from '../types/claim';
import { ClaimDocument } from '../types/document';
import { ClaimActivityLogItem, CreateClaimActivityLogItemDTO, UpdateClaimActivityLogItemDTO, QueryClaimActivityLogDTO } from '../types/activity_log';
import { TicketingTaskExtended, TicketingTaskQueryParams } from '../../../ticketing/tasks/types/task';
export declare class ClaimsAPI extends CRUD<Claim, CreateClaimDTO, UpdateClaimDTO, PaginatedResponse<Claim>> {
    constructor(httpClient: HTTPClient, baseUrl: string, claimId?: string);
    get(claimId?: string): Promise<APIResponse<ClaimExtended>>;
    find(query?: QueryClaimDTO): Promise<APIResponse<PaginatedResponse<Claim>>>;
    contacts(claimId?: string): ClaimContactsAPI;
    documents(claimId?: string): ClaimDocumentsAPI;
    tickets(claimId?: string): ClaimTicketsAPI;
    activityLog(claimId?: string): ClaimActivityLogAPI;
    activityLogDefaults(): Promise<APIResponse<string[]>>;
}
export declare class ClaimContactsAPI {
    private readonly _httpClient;
    private readonly _baseUrl;
    constructor(_httpClient: HTTPClient, _baseUrl: string);
    find(): Promise<APIResponse<ClaimContact[]>>;
    add(contactId: string): Promise<void>;
    delete(contactId: string): Promise<void>;
}
export declare class ClaimDocumentsAPI {
    private readonly _httpClient;
    private readonly _baseUrl;
    constructor(_httpClient: HTTPClient, _baseUrl: string);
    find(): Promise<APIResponse<ClaimDocument[]>>;
    download(documentId: string): Promise<CrossPlatformFileResponse>;
    upload(files: FormFileData[]): Promise<APIResponse<ClaimDocument[]>>;
    delete(documentId: string): Promise<void>;
}
export declare class ClaimTicketsAPI {
    private readonly _httpClient;
    private readonly _baseUrl;
    constructor(_httpClient: HTTPClient, _baseUrl: string);
    find(query?: Omit<TicketingTaskQueryParams, 'resourceId'>): Promise<APIResponse<PaginatedResponse<TicketingTaskExtended>>>;
}
export declare class ClaimActivityLogAPI {
    private readonly _httpClient;
    private readonly _baseUrl;
    constructor(_httpClient: HTTPClient, _baseUrl: string);
    find(query?: QueryClaimActivityLogDTO): Promise<APIResponse<PaginatedResponse<ClaimActivityLogItem>>>;
    create(data: CreateClaimActivityLogItemDTO): Promise<APIResponse<ClaimActivityLogItem>>;
    update(itemId: string, data: UpdateClaimActivityLogItemDTO): Promise<APIResponse<ClaimActivityLogItem>>;
    delete(itemId: string): Promise<void>;
}
//# sourceMappingURL=claims.d.ts.map