/**
 * Service for waiting for KOS applications to start
 * Provides utilities to wait for specific apps before proceeding with initialization
 */
/**
 * Interface representing a started KOS application
 */
export interface KosStartedApp {
    stopped: boolean;
    appId: string;
    started: boolean;
    sectionName: string;
    postStarted: boolean;
    parentAppId: string;
}
/**
 * Options for waiting for app startup
 */
export interface WaitForAppsOptions {
    /** Timeout in milliseconds (default: 30000) */
    timeout?: number;
    /** Whether to throw error if apps don't start (default: true) */
    throwOnTimeout?: boolean;
    /** Whether apps must be fully post-started (default: false) */
    requirePostStarted?: boolean;
}
/**
 * Wait for specific KOS applications to be started
 *
 * @param appIds - Array of application IDs to wait for
 * @param options - Configuration options
 * @returns Promise that resolves when all apps are started
 *
 * @example
 * ```typescript
 * // Wait for single app
 * await waitForAppsToStart(['kosdev.ddk']);
 *
 * // Wait for multiple apps with custom timeout
 * await waitForAppsToStart([
 *   'kosdev.ddk',
 *   'com.kondra.summer.2025.controlledPourPlugin'
 * ], { timeout: 60000 });
 *
 * // Wait without throwing on timeout
 * const success = await waitForAppsToStart(['kosdev.ddk'], {
 *   throwOnTimeout: false
 * });
 * ```
 */
export declare function waitForAppsToStart(appIds: string[], options?: WaitForAppsOptions): Promise<boolean>;
/**
 * Wait for a single KOS application to start (convenience function)
 *
 * @param appId - Application ID to wait for
 * @param options - Configuration options
 * @returns Promise that resolves when app is started
 */
export declare function waitForAppToStart(appId: string, options?: WaitForAppsOptions): Promise<boolean>;
/**
 * Check if specific apps are currently started (no waiting)
 *
 * @param appIds - Array of application IDs to check
 * @param requirePostStarted - Whether to require post-started status
 * @returns Promise resolving to status of each app
 */
export declare function checkAppsStarted(appIds: string[], requirePostStarted?: boolean): Promise<Record<string, boolean>>;
/**
 * Get all currently started apps
 *
 * @returns Promise resolving to array of started apps
 */
export declare function getStartedApps(): Promise<KosStartedApp[]>;
//# sourceMappingURL=app-startup-service.d.ts.map