/**
 * Initialize Settings Use Case
 *
 * Handles first-time settings initialization.
 * Creates default settings if none exist, or returns existing settings.
 *
 * Business Rules:
 * - Only one Settings record allowed (singleton pattern)
 * - Uses factory defaults for initial values
 * - Idempotent: safe to call multiple times
 */
import type { Settings } from '../../../domain/generated/output.js';
import type { ISettingsRepository } from '../../ports/output/settings.repository.interface.js';
/**
 * Use case for initializing global settings.
 *
 * Algorithm:
 * 1. Check if settings already exist (load from repository)
 * 2. If exists, return existing settings
 * 3. If not exists, create defaults and initialize in repository
 * 4. Return newly created settings
 */
export declare class InitializeSettingsUseCase {
    private readonly settingsRepository;
    constructor(settingsRepository: ISettingsRepository);
    /**
     * Execute the initialize settings use case.
     *
     * @returns Existing or newly created Settings
     */
    execute(): Promise<Settings>;
}
//# sourceMappingURL=initialize-settings.use-case.d.ts.map