import { Span } from '@mw-components/jaeger';
import type { MiddlewareConfig as MWConfig } from '@waiting/shared-types';
import * as Ali from '@yuntools/ali-oss';
export declare enum ConfigKey {
    namespace = "aliOss",
    config = "aliOssConfig",
    aliOssInstanceKey = "aliOssInstanceKey",
    componentName = "aliOssComponent",
    managerName = "aliOssManager",
    sourceManagerName = "aliOssSourceManager"
}
export declare enum ClientKey {
    master = "ossMaster",
    unitTest = "ossUnitTest"
}
export { BaseOptions, OssClient, ProcessRet, DataBase, DataCp, DataSign, DataStat, Config as OssConfig, FnKey, Msg, } from '@yuntools/ali-oss';
export interface ClientConfig {
    accessKeyId: string;
    accessKeySecret: string;
    endpoint: string;
    stsToken?: string;
    cmd?: string;
    debug?: boolean;
    bucket: string;
}
export interface MiddlewareOptions {
    debug: boolean;
}
export declare type MiddlewareConfig = MWConfig<MiddlewareOptions>;
/** midway DataSource */
export interface AliOssSourceConfig<SourceName extends string = string> {
    dataSource: DataSource<SourceName>;
    default?: Config;
}
export declare type DataSource<SourceName extends string = string> = Record<SourceName, Config>;
export interface Config extends ClientConfig {
    /**
     * Enable tracing via @mw-components/jaeger
     * @default false
     */
    enableTracing?: boolean;
    /**
     * 强制采样请求处理时间（毫秒）阈值
     * 负数不采样
     * @default 10_000
     */
    sampleThrottleMs?: number;
}
export declare type MkdirOptions = Omit<Ali.MkdirOptions, 'target'>;
export declare type CpOptions = Omit<Ali.CpOptions, 'target' | 'src'>;
export declare type UploadOptions = Omit<Ali.UploadOptions, 'target' | 'src'>;
export declare type DownloadOptions = Omit<Ali.DownloadOptions, 'target' | 'src'>;
export declare type LinkOptions = Omit<Ali.LinkOptions, 'target' | 'src'>;
export declare type RmOptions = Omit<Ali.RmOptions, 'target'>;
export declare type RmrfOptions = Omit<Ali.RmrfOptions, 'target'>;
export declare type StatOptions = Omit<Ali.StatOptions, 'target'>;
export declare type PathExistsOptions = Omit<Ali.PathExistsOptions, 'target'>;
export declare type MvOptions = Omit<Ali.MvOptions, 'target' | 'src'>;
export declare type SignOptions = Omit<Ali.SignOptions, 'src'>;
export declare type SyncOptions = Omit<Ali.SyncOptions, 'target' | 'src'>;
export declare type SyncLocalOptions = Omit<Ali.SyncLocalOptions, 'target' | 'src'>;
export declare type SyncRemoteOptions = Omit<Ali.SyncRemoteOptions, 'target' | 'src'>;
export interface QuerySpanInfo {
    span: Span;
    timestamp: number;
}
export interface CreateInstanceOptions {
    cacheInstance?: boolean | undefined;
}
//# sourceMappingURL=types.d.ts.map