///
import { StorageFile } from './file.js';
import { StorageNop } from './nop.js';
import type { StorageEtcd } from './etcd.js';
import type { StorageObs } from './obs.js';
import type { StorageS3 } from './s3.js';
export interface StorageNopOptions {
placeholder?: never;
}
export declare type StorageFileOptions = StorageNopOptions;
export interface StorageS3Options {
accessKeyId: string;
secretAccessKey: string;
region: string;
bucket: string;
}
export interface StorageObsOptions {
accessKeyId: string;
secretAccessKey: string;
server: string;
bucket: string;
}
export interface StorageEtcdOptions {
hosts: string[] | string;
auth?: {
username: string;
password: string;
};
credentials?: {
rootCertificate: Buffer;
privateKey?: Buffer;
certChain?: Buffer;
};
}
declare function obsLoader(): Promise;
declare function s3Loader(): Promise;
declare function etcdLoader(): Promise;
export declare const BACKEND_FACTORY_DICT: {
etcd: typeof etcdLoader;
file: () => Promise;
nop: () => Promise;
obs: typeof obsLoader;
s3: typeof s3Loader;
};
export declare type StorageBackendType = keyof typeof BACKEND_FACTORY_DICT;
export declare type StorageBackendOptions = ({
type?: 'file';
} & StorageFileOptions) | ({
type?: 'nop';
} & StorageNopOptions) | ({
type?: 's3';
} & StorageS3Options) | ({
type?: 'obs';
} & StorageObsOptions) | ({
type?: 'etcd';
} & StorageEtcdOptions);
export {};
//# sourceMappingURL=backend-config.d.ts.map