import { HTTPClient } from '../../../../utils/http';
import { CrossPlatformFileResponse } from '../../../../utils/compatibility';
import { PaginatedResponse } from '../../../../utils/types';
import { APIResponse } from '../../../../types';
import { BulkMessage, BulkMessageExtended, CreateBulkMessageDTO, BulkMessageQueryParams, BulkMessagingRecipient, BulkMessagingRecipientExtended, BulkMessagingRecipientValidationSummary, BulkMessagingStatsResponse, BulkMessageCommunityBreakdown, PreviewCountDTO, PreviewCountResponse, ValidateRecipientsDTO, RecipientQueryParams } from '../types';
import { BulkMessagingTemplatesAPI } from './templates';
import { BulkMessagingPostalShipmentsAPI } from './postal_shipments';
export declare class BulkMessagesAPI {
    private readonly _httpClient;
    private readonly _baseUrl;
    private readonly _bulkMessageId?;
    constructor(_httpClient: HTTPClient, _baseUrl: string, _bulkMessageId?: string | undefined);
    create(data: CreateBulkMessageDTO): Promise<APIResponse<BulkMessage>>;
    find(query?: BulkMessageQueryParams): Promise<APIResponse<PaginatedResponse<BulkMessage>>>;
    get(bulkMessageId?: string): Promise<APIResponse<BulkMessageExtended>>;
    previewCount(data: PreviewCountDTO): Promise<APIResponse<PreviewCountResponse>>;
    findRecipientsUnsent(bulkMessageId?: string, query?: RecipientQueryParams): Promise<APIResponse<PaginatedResponse<BulkMessagingRecipient>>>;
    findRecipientsWithErrors(bulkMessageId?: string, query?: RecipientQueryParams): Promise<APIResponse<PaginatedResponse<BulkMessagingRecipientExtended>>>;
    findCommunities(bulkMessageId?: string, query?: RecipientQueryParams): Promise<APIResponse<PaginatedResponse<BulkMessageCommunityBreakdown>>>;
    findRecipientsByCommunity(communityId: string, bulkMessageId?: string, query?: RecipientQueryParams): Promise<APIResponse<PaginatedResponse<BulkMessagingRecipientExtended>>>;
    validate(bulkMessageId?: string): Promise<APIResponse<BulkMessagingRecipientValidationSummary>>;
    validateRecipients(data: ValidateRecipientsDTO): Promise<APIResponse<BulkMessagingRecipientValidationSummary>>;
    getStats(): Promise<APIResponse<BulkMessagingStatsResponse>>;
    downloadAttachment(documentId: string, bulkMessageId?: string): Promise<CrossPlatformFileResponse>;
    cancel(bulkMessageId?: string): Promise<APIResponse<BulkMessage>>;
    postalShipments(bulkMessageId?: string): BulkMessagingPostalShipmentsAPI;
    templates(): BulkMessagingTemplatesAPI;
}
//# sourceMappingURL=bulk_messages.d.ts.map