/**
 * Sound Notification Utility
 *
 * Plays system sounds for CLI notifications like approval requests and task completion.
 * Uses platform-specific commands with fallback to terminal bell.
 *
 * Sound files should be placed in the Dexto sounds directory (typically ~/.dexto/sounds/).
 * In dexto source + DEXTO_DEV_MODE=true, this uses <repo>/.dexto/sounds/ for isolated dev.
 */
export type SoundType = 'startup' | 'approval' | 'complete';
export declare const CUSTOM_SOUND_EXTENSIONS: readonly [".wav", ".mp3", ".ogg", ".oga", ".aiff", ".m4a"];
export declare function getDefaultSoundSpec(soundType: SoundType): string | null;
export declare function playSoundFile(soundPath: string): void;
/**
 * Play a notification sound
 *
 * @param soundType - Type of sound to play ('startup', 'approval', or 'complete')
 *
 * @example
 * ```typescript
 * // Play approval required sound
 * playNotificationSound('approval');
 *
 * // Play task complete sound
 * playNotificationSound('complete');
 *
 * // Play startup sound
 * playNotificationSound('startup');
 * ```
 */
export declare function playNotificationSound(soundType: SoundType, config?: SoundConfig): void;
/**
 * Sound configuration interface
 *
 * Note: Default values are defined in PreferenceSoundsSchema (packages/agent-management/src/preferences/schemas.ts)
 * which is the single source of truth for sound preferences.
 */
export interface SoundConfig {
    enabled: boolean;
    onStartup: boolean;
    startupSoundFile?: string | undefined;
    onApprovalRequired: boolean;
    approvalSoundFile?: string | undefined;
    onTaskComplete: boolean;
    completeSoundFile?: string | undefined;
}
/**
 * Sound notification service that respects configuration
 *
 * All fields are required - callers should provide complete config from preferences.
 * Default values come from PreferenceSoundsSchema in @dexto/agent-management.
 */
export declare class SoundNotificationService {
    private config;
    constructor(config: SoundConfig);
    /**
     * Update configuration
     */
    setConfig(config: Partial<SoundConfig>): void;
    /**
     * Get current configuration
     */
    getConfig(): SoundConfig;
    /**
     * Play CLI startup sound if enabled
     */
    playStartupSound(): void;
    /**
     * Play approval required sound if enabled
     */
    playApprovalSound(): void;
    /**
     * Play task complete sound if enabled
     */
    playCompleteSound(): void;
}
//# sourceMappingURL=soundNotification.d.ts.map