import { TwilioMessageSender } from '../utils';
import { ExtId } from '@segment/actions-shared';
import type { Payload as PushPayload } from './generated-types';
interface BodyCustomDataBundle {
    requestBody: URLSearchParams;
    customData: object;
}
type Recepient = ExtId<PushPayload>;
export declare enum MobilePushExtIdTypes {
    IOS = "ios.push_token",
    ANDROID = "android.push_token"
}
export declare class PushSender extends TwilioMessageSender<PushPayload> {
    static readonly externalIdTypes: MobilePushExtIdTypes[];
    getChannelType(): string;
    isSupportedExternalId(externalId: ExtId<PushPayload>): boolean;
    readonly supportedTemplateTypes: string[];
    private DEFAULT_HOSTNAME;
    get twilioHostname(): string;
    get twilioToken(): string;
    beforeSend(recepients: Recepient[]): Promise<void>;
    bodyCustomDataBundle: BodyCustomDataBundle;
    sendToRecepient(recipientDevice: Recepient): Promise<import("@segment/actions-core/src").ModifiedResponse<unknown>>;
    getBody(): Promise<BodyCustomDataBundle>;
    private getTapActionPreset;
    private removeEmpties;
}
export {};
