import { t } from './common';
import { Manifest } from './manifest';
export declare class Config {
    static create: (options?: {
        path?: string | undefined;
    }) => Promise<Config>;
    static createSync: (options?: {
        path?: string | undefined;
    }) => Config;
    private constructor();
    private readonly def;
    get secret(): string;
    get builder(): {
        bundles: string;
        entries: string;
    };
    get s3(): {
        endpoint: string;
        cdn: string;
        accessKey: string;
        secret: string;
        bucket: string;
        path: {
            base: string;
            manifest: string;
            bundles: string;
        };
        readonly config: t.IS3Config;
        readonly fs: import("@platform/fs.s3.types/lib/types").S3;
        versions(options?: {
            sort?: 'ASC' | 'DESC';
        }): Promise<string[]>;
    };
    get baseUrl(): string;
    get manifest(): {
        local: {
            path: string;
            readonly exists: Promise<boolean>;
            load(args?: {
                loadBundleManifest?: boolean | undefined;
            }): Promise<Manifest>;
            ensureLatest(args?: {
                minimal?: boolean;
            }): Promise<Manifest>;
        };
        s3: {
            url: string;
            pull(args?: {
                force?: boolean;
                loadBundleManifest?: boolean;
            }): Promise<Manifest>;
        };
    };
    createFromTemplate(): Promise<{
        source: string;
        target: string;
    }>;
}
