/**
 * Dialog Types
 *
 * Shared types for workflow dialog components.
 *
 * @since v1.43.2
 */
import type { ServerJarType } from '../../../core/server-jar/index.js';
import type { BackupProgress } from '../../../workflows/backup.js';
import type { DownloadProgress as PluginDownloadProgress } from '../../../workflows/download.js';
import type { SyncProgress } from '../../../workflows/sync.js';
/**
 * Supported workflow types
 */
export type WorkflowType = 'sync' | 'backup' | 'download' | 'migrate' | null;
/**
 * Download workflow step
 * v1.50.5: Added 'config-prompt' and 'destination' steps
 */
export type DownloadStep = 'config-prompt' | 'type' | 'version' | 'destination' | 'progress';
/**
 * Sync/Migrate dialog state
 */
export interface SyncDialogState {
    loading: boolean;
    progress: SyncProgress | null;
}
/**
 * Backup dialog state
 */
export interface BackupDialogState {
    loading: boolean;
    progress: BackupProgress | null;
}
/**
 * Download dialog state
 */
export interface DownloadDialogState {
    loading: boolean;
    step: DownloadStep;
    selectedServerType: ServerJarType | null;
    progress: {
        message?: string;
        bytesDownloaded: number;
        totalBytes: number;
        status?: string;
    } | null;
    availableVersions: string[];
    loadingVersions: boolean;
}
/**
 * Batch download dialog state
 */
export interface BatchDownloadDialogState {
    loading: boolean;
    progress: PluginDownloadProgress | null;
}
/**
 * Workflow dialog text configuration
 */
export interface WorkflowDialogConfig {
    title: string;
    description?: string;
    confirmLabel: string;
}
/**
 * Get dialog configuration for workflow type
 */
export declare function getWorkflowDialogConfig(workflowType: WorkflowType): WorkflowDialogConfig | null;
/**
 * Server type options for download dialog
 */
export declare const SERVER_TYPE_OPTIONS: readonly [{
    readonly id: "paper";
    readonly label: "Paper";
    readonly description: "High performance fork of Spigot";
}, {
    readonly id: "purpur";
    readonly label: "Purpur";
    readonly description: "Fork of Paper with extra features";
}];
//# sourceMappingURL=dialog-types.d.ts.map