import type { NotifyConfig } from "./notify.js";
/**
 * Store a notify secret in the OS keychain.
 * Falls back to tokenBuffer + file when keychain unavailable.
 */
export declare function storeNotifySecret(channel: string, field: string, value: string): boolean;
/**
 * Read a notify secret from the OS keychain.
 * Falls back to tokenBuffer → file when keychain unavailable.
 */
export declare function readNotifySecret(channel: string, field: string): string | undefined;
/**
 * Remove a notify secret from the OS keychain.
 * Falls back to tokenBuffer + file removal when keychain unavailable.
 */
export declare function removeNotifySecret(channel: string, field: string): boolean;
/**
 * Save all secrets for a channel to keychain, then update channel metadata.
 * Metadata file only records which channels are active — no secrets.
 */
export declare function saveNotifyChannel(channel: string, config: NonNullable<NotifyConfig[keyof NotifyConfig]>): void;
/**
 * Load all configured channels by reading metadata + resolving secrets from keychain.
 * Automatically migrates legacy notify.json on first call.
 */
export declare function loadNotifyChannels(): NotifyConfig;
/**
 * Remove all secrets for a channel from keychain, then update metadata.
 */
export declare function removeNotifyChannel(channel: string): void;
/**
 * Check if the OS keychain is available for notify secrets.
 */
export declare function isNotifyKeychainAvailable(): boolean;
/**
 * Load the allowedChatIds array from notify-channels.json metadata.
 * Returns [] if the file does not exist, the field is absent, or is not an array.
 */
export declare function loadAllowedChatIds(): string[];
/**
 * Persist allowedChatIds to notify-channels.json, preserving existing channel flags.
 */
export declare function saveAllowedChatIds(ids: string[]): void;
//# sourceMappingURL=notifyStore.d.ts.map