export interface PngmeDialogStyle {
    primaryColor?: string;
    backgroundColor?: string;
    textColor?: string;
    buttonBackgroundColor?: string;
    buttonTextColor?: string;
    linkTextColor?: string;
    titleTextSize?: number;
    bodyTextSize?: number;
    buttonTextSize?: number;
    closeIconColor?: string;
    smsIconColor?: string;
    privacyIconColor?: string;
    customTitle?: string;
    customSmsDescription?: string;
    customPrivacyDescription?: string;
    customButtonText?: string;
    buttonCornerRadius?: number;
    buttonElevation?: number;
    privacyPolicyUrl?: string;
    eulaUrl?: string;
    contentPadding?: number;
}
export interface PngmeConfig {
    clientKey: string;
    externalId: string;
    companyName: string;
    firstName?: string;
    lastName?: string;
    email?: string;
    phoneNumber?: string;
    dialogStyle?: PngmeDialogStyle;
}
export interface PngmePermissionStatus {
    smsPermission: 'granted' | 'denied' | 'never_asked';
    termsAccepted: boolean;
}
export interface PngmeEventMap extends Record<string, any> {
    onPermissionGranted: {
        status: PngmePermissionStatus;
    };
    onPermissionDenied: {
        status: PngmePermissionStatus;
    };
    onDialogDismissed: {
        completed: boolean;
    };
    onSignInComplete: {
        userId: string;
    };
    onSmsUploadStarted: {
        timestamp: number;
    };
    onSmsUploadComplete: {
        success: boolean;
        count?: number;
    };
    onError: {
        error: string;
        code: string;
    };
}
export interface PngmeModuleInterface {
    go(config: PngmeConfig): Promise<void>;
    isPermissionGranted(): Promise<boolean>;
    getUserUuid(): Promise<string | null>;
    setDefaultStyle(style: PngmeDialogStyle): Promise<void>;
    clearDefaultStyle(): Promise<void>;
    getPermissionStatus(): Promise<PngmePermissionStatus>;
}
//# sourceMappingURL=Pngme.types.d.ts.map