import { z } from 'zod';
import { type SecretStringV1 } from '../../crypto/settingsSecretStringsV1.js';
import type { NotificationsSettingsV1 } from './accountSettings.js';
export declare const BUILT_IN_EXPO_PUSH_NOTIFICATION_CHANNEL_ID = "builtin:expo_push";
export declare const NotificationChannelTopicsV1Schema: z.ZodCatch<z.ZodObject<{
    ready: z.ZodDefault<z.ZodBoolean>;
    permissionRequest: z.ZodDefault<z.ZodBoolean>;
    userActionRequest: z.ZodDefault<z.ZodBoolean>;
}, z.core.$strip>>;
export type NotificationChannelTopicsV1 = z.infer<typeof NotificationChannelTopicsV1Schema>;
export declare const DEFAULT_NOTIFICATION_CHANNEL_TOPICS_V1: NotificationChannelTopicsV1;
export declare const ExpoPushNotificationChannelV1Schema: z.ZodObject<{
    v: z.ZodDefault<z.ZodLiteral<1>>;
    id: z.ZodString;
    enabled: z.ZodDefault<z.ZodBoolean>;
    topics: z.ZodDefault<z.ZodCatch<z.ZodObject<{
        ready: z.ZodDefault<z.ZodBoolean>;
        permissionRequest: z.ZodDefault<z.ZodBoolean>;
        userActionRequest: z.ZodDefault<z.ZodBoolean>;
    }, z.core.$strip>>>;
    readyIncludeMessageText: z.ZodDefault<z.ZodBoolean>;
    kind: z.ZodLiteral<"expo_push">;
}, z.core.$strip>;
export type ExpoPushNotificationChannelV1 = z.infer<typeof ExpoPushNotificationChannelV1Schema>;
export declare const WebhookNotificationChannelV1Schema: z.ZodObject<{
    v: z.ZodDefault<z.ZodLiteral<1>>;
    id: z.ZodString;
    enabled: z.ZodDefault<z.ZodBoolean>;
    topics: z.ZodDefault<z.ZodCatch<z.ZodObject<{
        ready: z.ZodDefault<z.ZodBoolean>;
        permissionRequest: z.ZodDefault<z.ZodBoolean>;
        userActionRequest: z.ZodDefault<z.ZodBoolean>;
    }, z.core.$strip>>>;
    readyIncludeMessageText: z.ZodDefault<z.ZodBoolean>;
    kind: z.ZodLiteral<"webhook">;
    url: z.ZodURL;
    signingSecret: z.ZodDefault<z.ZodNullable<z.ZodObject<{
        _isSecretValue: z.ZodLiteral<true>;
        value: z.ZodOptional<z.ZodString>;
        encryptedValue: z.ZodOptional<z.ZodObject<{
            t: z.ZodLiteral<"enc-v1">;
            c: z.ZodString;
        }, z.core.$strip>>;
    }, z.core.$strip>>>;
}, z.core.$strip>;
export type WebhookNotificationChannelV1 = z.infer<typeof WebhookNotificationChannelV1Schema>;
export declare function hasConfiguredSecretStringValue(secret: SecretStringV1 | null | undefined): boolean;
export declare const NotificationChannelV1Schema: z.ZodDiscriminatedUnion<[z.ZodObject<{
    v: z.ZodDefault<z.ZodLiteral<1>>;
    id: z.ZodString;
    enabled: z.ZodDefault<z.ZodBoolean>;
    topics: z.ZodDefault<z.ZodCatch<z.ZodObject<{
        ready: z.ZodDefault<z.ZodBoolean>;
        permissionRequest: z.ZodDefault<z.ZodBoolean>;
        userActionRequest: z.ZodDefault<z.ZodBoolean>;
    }, z.core.$strip>>>;
    readyIncludeMessageText: z.ZodDefault<z.ZodBoolean>;
    kind: z.ZodLiteral<"expo_push">;
}, z.core.$strip>, z.ZodObject<{
    v: z.ZodDefault<z.ZodLiteral<1>>;
    id: z.ZodString;
    enabled: z.ZodDefault<z.ZodBoolean>;
    topics: z.ZodDefault<z.ZodCatch<z.ZodObject<{
        ready: z.ZodDefault<z.ZodBoolean>;
        permissionRequest: z.ZodDefault<z.ZodBoolean>;
        userActionRequest: z.ZodDefault<z.ZodBoolean>;
    }, z.core.$strip>>>;
    readyIncludeMessageText: z.ZodDefault<z.ZodBoolean>;
    kind: z.ZodLiteral<"webhook">;
    url: z.ZodURL;
    signingSecret: z.ZodDefault<z.ZodNullable<z.ZodObject<{
        _isSecretValue: z.ZodLiteral<true>;
        value: z.ZodOptional<z.ZodString>;
        encryptedValue: z.ZodOptional<z.ZodObject<{
            t: z.ZodLiteral<"enc-v1">;
            c: z.ZodString;
        }, z.core.$strip>>;
    }, z.core.$strip>>>;
}, z.core.$strip>], "kind">;
export type NotificationChannelV1 = z.infer<typeof NotificationChannelV1Schema>;
export declare const NotificationChannelsV1Schema: z.ZodDefault<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
    v: z.ZodDefault<z.ZodLiteral<1>>;
    id: z.ZodString;
    enabled: z.ZodDefault<z.ZodBoolean>;
    topics: z.ZodDefault<z.ZodCatch<z.ZodObject<{
        ready: z.ZodDefault<z.ZodBoolean>;
        permissionRequest: z.ZodDefault<z.ZodBoolean>;
        userActionRequest: z.ZodDefault<z.ZodBoolean>;
    }, z.core.$strip>>>;
    readyIncludeMessageText: z.ZodDefault<z.ZodBoolean>;
    kind: z.ZodLiteral<"expo_push">;
}, z.core.$strip>, z.ZodObject<{
    v: z.ZodDefault<z.ZodLiteral<1>>;
    id: z.ZodString;
    enabled: z.ZodDefault<z.ZodBoolean>;
    topics: z.ZodDefault<z.ZodCatch<z.ZodObject<{
        ready: z.ZodDefault<z.ZodBoolean>;
        permissionRequest: z.ZodDefault<z.ZodBoolean>;
        userActionRequest: z.ZodDefault<z.ZodBoolean>;
    }, z.core.$strip>>>;
    readyIncludeMessageText: z.ZodDefault<z.ZodBoolean>;
    kind: z.ZodLiteral<"webhook">;
    url: z.ZodURL;
    signingSecret: z.ZodDefault<z.ZodNullable<z.ZodObject<{
        _isSecretValue: z.ZodLiteral<true>;
        value: z.ZodOptional<z.ZodString>;
        encryptedValue: z.ZodOptional<z.ZodObject<{
            t: z.ZodLiteral<"enc-v1">;
            c: z.ZodString;
        }, z.core.$strip>>;
    }, z.core.$strip>>>;
}, z.core.$strip>], "kind">>>;
export type NotificationChannelsV1 = z.infer<typeof NotificationChannelsV1Schema>;
export declare function deriveExpoPushNotificationChannelFromLegacySettings(settings: Readonly<NotificationsSettingsV1>): ExpoPushNotificationChannelV1;
//# sourceMappingURL=notificationChannels.d.ts.map