import { TODOS_STORAGE_ENV } from "../storage/index.js";
import type { CanonicalTodosRdsConfig, TodosStorageEnv, TodosStorageMode } from "../storage/index.js";
export interface NativeStorageEnvStatus {
    name: string;
    active_name: string;
    configured: boolean;
}
export interface NativeStorageStatus {
    ok: boolean;
    service: "todos";
    mode: TodosStorageMode;
    local_default: boolean;
    remote_enabled: boolean;
    database: {
        configured: boolean;
        provider: "postgres" | null;
        redacted_url: string | null;
        ssl: boolean | null;
        schema: string | null;
    };
    object_storage: {
        configured: boolean;
        provider: "s3" | null;
        bucket: string | null;
        prefix: string | null;
        region: string | null;
        endpoint_configured: boolean;
        force_path_style: boolean;
    };
    sync: {
        batch_size: number;
        dry_run: boolean;
    };
    env: Record<keyof typeof TODOS_STORAGE_ENV, NativeStorageEnvStatus>;
    canonical: CanonicalTodosRdsConfig;
    issues: string[];
    warnings: string[];
    no_network: true;
}
export interface NativeStorageSyncPlan {
    ok: boolean;
    service: "todos";
    dry_run: true;
    no_network: true;
    status: NativeStorageStatus;
    postgres: {
        required: boolean;
        configured: boolean;
        schema_sql: string[];
    };
    object_storage: {
        required: boolean;
        configured: boolean;
        bucket: string | null;
        prefix: string | null;
    };
    steps: string[];
}
export interface NativeStorageSyncPlanOptions {
    includeSchemaSql?: boolean;
}
export declare function getNativeStorageStatus(env?: TodosStorageEnv): NativeStorageStatus;
export declare function getNativeStorageSyncPlan(env?: TodosStorageEnv, options?: NativeStorageSyncPlanOptions): NativeStorageSyncPlan;
export declare function redactDatabaseUrl(value: string | undefined): string | null;
//# sourceMappingURL=native-storage-status.d.ts.map