import { PermissionResponse } from 'unimodules-permissions-interface';
export declare enum IosAlertStyle {
    NONE = 0,
    BANNER = 1,
    ALERT = 2
}
export declare enum IosAllowsPreviews {
    NEVER = 0,
    ALWAYS = 1,
    WHEN_AUTHENTICATED = 2
}
export declare enum IosAuthorizationStatus {
    NOT_DETERMINED = 0,
    DENIED = 1,
    AUTHORIZED = 2,
    PROVISIONAL = 3
}
export interface NotificationPermissionsStatus extends PermissionResponse {
    android?: {
        importance: number;
        interruptionFilter?: number;
    };
    ios?: {
        status: IosAuthorizationStatus;
        allowsDisplayInNotificationCenter: boolean | null;
        allowsDisplayOnLockScreen: boolean | null;
        allowsDisplayInCarPlay: boolean | null;
        allowsAlert: boolean | null;
        allowsBadge: boolean | null;
        allowsSound: boolean | null;
        allowsCriticalAlerts?: boolean | null;
        alertStyle: IosAlertStyle;
        allowsPreviews?: IosAllowsPreviews;
        providesAppNotificationSettings?: boolean;
        allowsAnnouncements?: boolean | null;
    };
}
export interface IosNotificationPermissionsRequest {
    allowAlert?: boolean;
    allowBadge?: boolean;
    allowSound?: boolean;
    allowDisplayInCarPlay?: boolean;
    allowCriticalAlerts?: boolean;
    provideAppNotificationSettings?: boolean;
    allowProvisional?: boolean;
    allowAnnouncements?: boolean;
}
export interface AndroidNotificationPermissionRequest {
}
export declare type NativeNotificationPermissionsRequest = IosNotificationPermissionsRequest | AndroidNotificationPermissionRequest;
export interface NotificationPermissionsRequest {
    ios?: IosNotificationPermissionsRequest;
    android?: AndroidNotificationPermissionRequest;
}
