import { z } from 'zod';
import { type InferProvider } from './capability-definition.js';
declare const ProviderInfoSchema: z.ZodObject<{
    providerId: z.ZodString;
    displayName: z.ZodString;
    supportedLocationTypes: z.ZodReadonly<z.ZodArray<z.ZodEnum<{
        data: "data";
        media: "media";
        recordings: "recordings";
        cache: "cache";
        logs: "logs";
        models: "models";
        "recordings-high": "recordings-high";
        "recordings-low": "recordings-low";
        "recordings-clips": "recordings-clips";
        "event-images": "event-images";
        "addons-data": "addons-data";
        backups: "backups";
    }>>>;
    configSchema: z.ZodUnknown;
}, z.core.$strip>;
declare const TestLocationResultSchema: z.ZodObject<{
    ok: z.ZodBoolean;
    error: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
declare const BeginUploadInputSchema: z.ZodObject<{
    location: z.ZodObject<{
        id: z.ZodString;
        type: z.ZodEnum<{
            data: "data";
            media: "media";
            recordings: "recordings";
            cache: "cache";
            logs: "logs";
            models: "models";
            "recordings-high": "recordings-high";
            "recordings-low": "recordings-low";
            "recordings-clips": "recordings-clips";
            "event-images": "event-images";
            "addons-data": "addons-data";
            backups: "backups";
        }>;
        displayName: z.ZodString;
        providerId: z.ZodString;
        config: z.ZodRecord<z.ZodString, z.ZodUnknown>;
        isDefault: z.ZodDefault<z.ZodBoolean>;
        isSystem: z.ZodDefault<z.ZodBoolean>;
        createdAt: z.ZodNumber;
        updatedAt: z.ZodNumber;
    }, z.core.$strip>;
    relativePath: z.ZodString;
    sizeBytes: z.ZodOptional<z.ZodNumber>;
}, z.core.$strip>;
declare const BeginUploadResultSchema: z.ZodObject<{
    uploadId: z.ZodString;
}, z.core.$strip>;
declare const WriteChunkInputSchema: z.ZodObject<{
    uploadId: z.ZodString;
    offset: z.ZodNumber;
    data: z.ZodCustom<Uint8Array<ArrayBuffer>, Uint8Array<ArrayBuffer>>;
}, z.core.$strip>;
declare const FinalizeUploadInputSchema: z.ZodObject<{
    uploadId: z.ZodString;
}, z.core.$strip>;
declare const AbortUploadInputSchema: z.ZodObject<{
    uploadId: z.ZodString;
}, z.core.$strip>;
declare const BeginDownloadInputSchema: z.ZodObject<{
    location: z.ZodObject<{
        id: z.ZodString;
        type: z.ZodEnum<{
            data: "data";
            media: "media";
            recordings: "recordings";
            cache: "cache";
            logs: "logs";
            models: "models";
            "recordings-high": "recordings-high";
            "recordings-low": "recordings-low";
            "recordings-clips": "recordings-clips";
            "event-images": "event-images";
            "addons-data": "addons-data";
            backups: "backups";
        }>;
        displayName: z.ZodString;
        providerId: z.ZodString;
        config: z.ZodRecord<z.ZodString, z.ZodUnknown>;
        isDefault: z.ZodDefault<z.ZodBoolean>;
        isSystem: z.ZodDefault<z.ZodBoolean>;
        createdAt: z.ZodNumber;
        updatedAt: z.ZodNumber;
    }, z.core.$strip>;
    relativePath: z.ZodString;
}, z.core.$strip>;
declare const BeginDownloadResultSchema: z.ZodObject<{
    downloadId: z.ZodString;
    sizeBytes: z.ZodNumber;
}, z.core.$strip>;
declare const ReadChunkInputSchema: z.ZodObject<{
    downloadId: z.ZodString;
    offset: z.ZodNumber;
    length: z.ZodNumber;
}, z.core.$strip>;
declare const EndDownloadInputSchema: z.ZodObject<{
    downloadId: z.ZodString;
}, z.core.$strip>;
/**
 * storage-provider — collection capability for backend-specific storage
 * drivers.
 *
 * Multiple addons register against this cap (filesystem-storage,
 * sftp-storage, s3-storage, webdav-storage, …). The orchestrator
 * (singleton `storage` cap, owned by the storage-orchestrator builtin)
 * routes each call to the right provider by looking up
 * `location.providerId` and dispatching the inline `location` arg.
 *
 * Design notes:
 *   - Stateless dispatch: every primitive carries its own `location`,
 *     so providers don't keep per-location state across calls.
 *   - Session-scoped uploads/downloads: the `uploadId`/`downloadId`
 *     handles let the provider hold open file descriptors / streams
 *     between chunks while keeping the cap surface RPC-friendly.
 *   - `internal: true` — this cap is consumed only by the storage
 *     orchestrator. Public consumers go through the `storage`
 *     singleton cap; they never see `storage-provider` directly.
 */
export declare const storageProviderCapability: {
    readonly name: "storage-provider";
    readonly scope: "system";
    readonly mode: "collection";
    readonly internal: true;
    readonly methods: {
        /** Self-description for the "Add location" wizard. */
        readonly getProviderInfo: import("./capability-definition.js").CapabilityMethodSchema<z.ZodVoid, z.ZodObject<{
            providerId: z.ZodString;
            displayName: z.ZodString;
            supportedLocationTypes: z.ZodReadonly<z.ZodArray<z.ZodEnum<{
                data: "data";
                media: "media";
                recordings: "recordings";
                cache: "cache";
                logs: "logs";
                models: "models";
                "recordings-high": "recordings-high";
                "recordings-low": "recordings-low";
                "recordings-clips": "recordings-clips";
                "event-images": "event-images";
                "addons-data": "addons-data";
                backups: "backups";
            }>>>;
            configSchema: z.ZodUnknown;
        }, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
        /** Validate config + probe connectivity. Called on add and on edit. */
        readonly testLocation: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
            config: z.ZodRecord<z.ZodString, z.ZodUnknown>;
        }, z.core.$strip>, z.ZodObject<{
            ok: z.ZodBoolean;
            error: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
        readonly resolve: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
            location: z.ZodObject<{
                id: z.ZodString;
                type: z.ZodEnum<{
                    data: "data";
                    media: "media";
                    recordings: "recordings";
                    cache: "cache";
                    logs: "logs";
                    models: "models";
                    "recordings-high": "recordings-high";
                    "recordings-low": "recordings-low";
                    "recordings-clips": "recordings-clips";
                    "event-images": "event-images";
                    "addons-data": "addons-data";
                    backups: "backups";
                }>;
                displayName: z.ZodString;
                providerId: z.ZodString;
                config: z.ZodRecord<z.ZodString, z.ZodUnknown>;
                isDefault: z.ZodDefault<z.ZodBoolean>;
                isSystem: z.ZodDefault<z.ZodBoolean>;
                createdAt: z.ZodNumber;
                updatedAt: z.ZodNumber;
            }, z.core.$strip>;
            relativePath: z.ZodString;
        }, z.core.$strip>, z.ZodString, import("./capability-definition.js").CapabilityMethodKind>;
        readonly write: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
            location: z.ZodObject<{
                id: z.ZodString;
                type: z.ZodEnum<{
                    data: "data";
                    media: "media";
                    recordings: "recordings";
                    cache: "cache";
                    logs: "logs";
                    models: "models";
                    "recordings-high": "recordings-high";
                    "recordings-low": "recordings-low";
                    "recordings-clips": "recordings-clips";
                    "event-images": "event-images";
                    "addons-data": "addons-data";
                    backups: "backups";
                }>;
                displayName: z.ZodString;
                providerId: z.ZodString;
                config: z.ZodRecord<z.ZodString, z.ZodUnknown>;
                isDefault: z.ZodDefault<z.ZodBoolean>;
                isSystem: z.ZodDefault<z.ZodBoolean>;
                createdAt: z.ZodNumber;
                updatedAt: z.ZodNumber;
            }, z.core.$strip>;
            relativePath: z.ZodString;
            data: z.ZodCustom<Uint8Array<ArrayBuffer>, Uint8Array<ArrayBuffer>>;
        }, z.core.$strip>, z.ZodVoid, "mutation">;
        readonly read: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
            location: z.ZodObject<{
                id: z.ZodString;
                type: z.ZodEnum<{
                    data: "data";
                    media: "media";
                    recordings: "recordings";
                    cache: "cache";
                    logs: "logs";
                    models: "models";
                    "recordings-high": "recordings-high";
                    "recordings-low": "recordings-low";
                    "recordings-clips": "recordings-clips";
                    "event-images": "event-images";
                    "addons-data": "addons-data";
                    backups: "backups";
                }>;
                displayName: z.ZodString;
                providerId: z.ZodString;
                config: z.ZodRecord<z.ZodString, z.ZodUnknown>;
                isDefault: z.ZodDefault<z.ZodBoolean>;
                isSystem: z.ZodDefault<z.ZodBoolean>;
                createdAt: z.ZodNumber;
                updatedAt: z.ZodNumber;
            }, z.core.$strip>;
            relativePath: z.ZodString;
        }, z.core.$strip>, z.ZodCustom<Uint8Array<ArrayBuffer>, Uint8Array<ArrayBuffer>>, import("./capability-definition.js").CapabilityMethodKind>;
        readonly exists: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
            location: z.ZodObject<{
                id: z.ZodString;
                type: z.ZodEnum<{
                    data: "data";
                    media: "media";
                    recordings: "recordings";
                    cache: "cache";
                    logs: "logs";
                    models: "models";
                    "recordings-high": "recordings-high";
                    "recordings-low": "recordings-low";
                    "recordings-clips": "recordings-clips";
                    "event-images": "event-images";
                    "addons-data": "addons-data";
                    backups: "backups";
                }>;
                displayName: z.ZodString;
                providerId: z.ZodString;
                config: z.ZodRecord<z.ZodString, z.ZodUnknown>;
                isDefault: z.ZodDefault<z.ZodBoolean>;
                isSystem: z.ZodDefault<z.ZodBoolean>;
                createdAt: z.ZodNumber;
                updatedAt: z.ZodNumber;
            }, z.core.$strip>;
            relativePath: z.ZodString;
        }, z.core.$strip>, z.ZodBoolean, import("./capability-definition.js").CapabilityMethodKind>;
        readonly list: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
            location: z.ZodObject<{
                id: z.ZodString;
                type: z.ZodEnum<{
                    data: "data";
                    media: "media";
                    recordings: "recordings";
                    cache: "cache";
                    logs: "logs";
                    models: "models";
                    "recordings-high": "recordings-high";
                    "recordings-low": "recordings-low";
                    "recordings-clips": "recordings-clips";
                    "event-images": "event-images";
                    "addons-data": "addons-data";
                    backups: "backups";
                }>;
                displayName: z.ZodString;
                providerId: z.ZodString;
                config: z.ZodRecord<z.ZodString, z.ZodUnknown>;
                isDefault: z.ZodDefault<z.ZodBoolean>;
                isSystem: z.ZodDefault<z.ZodBoolean>;
                createdAt: z.ZodNumber;
                updatedAt: z.ZodNumber;
            }, z.core.$strip>;
            prefix: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>, z.ZodReadonly<z.ZodArray<z.ZodString>>, import("./capability-definition.js").CapabilityMethodKind>;
        readonly delete: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
            location: z.ZodObject<{
                id: z.ZodString;
                type: z.ZodEnum<{
                    data: "data";
                    media: "media";
                    recordings: "recordings";
                    cache: "cache";
                    logs: "logs";
                    models: "models";
                    "recordings-high": "recordings-high";
                    "recordings-low": "recordings-low";
                    "recordings-clips": "recordings-clips";
                    "event-images": "event-images";
                    "addons-data": "addons-data";
                    backups: "backups";
                }>;
                displayName: z.ZodString;
                providerId: z.ZodString;
                config: z.ZodRecord<z.ZodString, z.ZodUnknown>;
                isDefault: z.ZodDefault<z.ZodBoolean>;
                isSystem: z.ZodDefault<z.ZodBoolean>;
                createdAt: z.ZodNumber;
                updatedAt: z.ZodNumber;
            }, z.core.$strip>;
            relativePath: z.ZodString;
        }, z.core.$strip>, z.ZodVoid, "mutation">;
        readonly getAvailableSpace: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
            location: z.ZodObject<{
                id: z.ZodString;
                type: z.ZodEnum<{
                    data: "data";
                    media: "media";
                    recordings: "recordings";
                    cache: "cache";
                    logs: "logs";
                    models: "models";
                    "recordings-high": "recordings-high";
                    "recordings-low": "recordings-low";
                    "recordings-clips": "recordings-clips";
                    "event-images": "event-images";
                    "addons-data": "addons-data";
                    backups: "backups";
                }>;
                displayName: z.ZodString;
                providerId: z.ZodString;
                config: z.ZodRecord<z.ZodString, z.ZodUnknown>;
                isDefault: z.ZodDefault<z.ZodBoolean>;
                isSystem: z.ZodDefault<z.ZodBoolean>;
                createdAt: z.ZodNumber;
                updatedAt: z.ZodNumber;
            }, z.core.$strip>;
        }, z.core.$strip>, z.ZodNullable<z.ZodNumber>, import("./capability-definition.js").CapabilityMethodKind>;
        readonly beginUpload: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
            location: z.ZodObject<{
                id: z.ZodString;
                type: z.ZodEnum<{
                    data: "data";
                    media: "media";
                    recordings: "recordings";
                    cache: "cache";
                    logs: "logs";
                    models: "models";
                    "recordings-high": "recordings-high";
                    "recordings-low": "recordings-low";
                    "recordings-clips": "recordings-clips";
                    "event-images": "event-images";
                    "addons-data": "addons-data";
                    backups: "backups";
                }>;
                displayName: z.ZodString;
                providerId: z.ZodString;
                config: z.ZodRecord<z.ZodString, z.ZodUnknown>;
                isDefault: z.ZodDefault<z.ZodBoolean>;
                isSystem: z.ZodDefault<z.ZodBoolean>;
                createdAt: z.ZodNumber;
                updatedAt: z.ZodNumber;
            }, z.core.$strip>;
            relativePath: z.ZodString;
            sizeBytes: z.ZodOptional<z.ZodNumber>;
        }, z.core.$strip>, z.ZodObject<{
            uploadId: z.ZodString;
        }, z.core.$strip>, "mutation">;
        readonly writeChunk: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
            uploadId: z.ZodString;
            offset: z.ZodNumber;
            data: z.ZodCustom<Uint8Array<ArrayBuffer>, Uint8Array<ArrayBuffer>>;
        }, z.core.$strip>, z.ZodVoid, "mutation">;
        readonly finalizeUpload: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
            uploadId: z.ZodString;
        }, z.core.$strip>, z.ZodVoid, "mutation">;
        readonly abortUpload: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
            uploadId: z.ZodString;
        }, z.core.$strip>, z.ZodVoid, "mutation">;
        readonly beginDownload: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
            location: z.ZodObject<{
                id: z.ZodString;
                type: z.ZodEnum<{
                    data: "data";
                    media: "media";
                    recordings: "recordings";
                    cache: "cache";
                    logs: "logs";
                    models: "models";
                    "recordings-high": "recordings-high";
                    "recordings-low": "recordings-low";
                    "recordings-clips": "recordings-clips";
                    "event-images": "event-images";
                    "addons-data": "addons-data";
                    backups: "backups";
                }>;
                displayName: z.ZodString;
                providerId: z.ZodString;
                config: z.ZodRecord<z.ZodString, z.ZodUnknown>;
                isDefault: z.ZodDefault<z.ZodBoolean>;
                isSystem: z.ZodDefault<z.ZodBoolean>;
                createdAt: z.ZodNumber;
                updatedAt: z.ZodNumber;
            }, z.core.$strip>;
            relativePath: z.ZodString;
        }, z.core.$strip>, z.ZodObject<{
            downloadId: z.ZodString;
            sizeBytes: z.ZodNumber;
        }, z.core.$strip>, "mutation">;
        readonly readChunk: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
            downloadId: z.ZodString;
            offset: z.ZodNumber;
            length: z.ZodNumber;
        }, z.core.$strip>, z.ZodCustom<Uint8Array<ArrayBuffer>, Uint8Array<ArrayBuffer>>, import("./capability-definition.js").CapabilityMethodKind>;
        readonly endDownload: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
            downloadId: z.ZodString;
        }, z.core.$strip>, z.ZodVoid, "mutation">;
    };
};
export type IStorageProviderImpl = InferProvider<typeof storageProviderCapability>;
export { ProviderInfoSchema, TestLocationResultSchema, BeginUploadInputSchema, BeginUploadResultSchema, WriteChunkInputSchema, FinalizeUploadInputSchema, AbortUploadInputSchema, BeginDownloadInputSchema, BeginDownloadResultSchema, ReadChunkInputSchema, EndDownloadInputSchema, };
//# sourceMappingURL=storage-provider.cap.d.ts.map