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;
    readonly secret: string;
    readonly builder: {
        bundles: string;
        entries: string;
    };
    readonly 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/lib/types").S3;
        versions(options?: {
            sort?: "ASC" | "DESC" | undefined;
        }): Promise<string[]>;
    };
    readonly baseUrl: string;
    readonly manifest: {
        local: {
            path: string;
            readonly exists: Promise<boolean>;
            load(args?: {
                loadBundleManifest?: boolean | undefined;
            }): Promise<Manifest>;
            ensureLatest(args?: {
                minimal?: boolean | undefined;
            }): Promise<Manifest>;
        };
        s3: {
            url: string;
            pull(args?: {
                force?: boolean | undefined;
                loadBundleManifest?: boolean | undefined;
            }): Promise<Manifest>;
        };
    };
    createFromTemplate(): Promise<{
        source: string;
        target: string;
    }>;
}
