import { t } from '../common';
import { Route } from './Route';
export declare type ISiteArgs = {
    index: number;
    manifest: t.IManifest;
};
export declare class Site {
    static formatMany(args: {
        input: any;
        baseUrl: string;
        loadBundleManifest?: boolean;
    }): Promise<t.ISiteManifest[]>;
    static formatOne(args: {
        input: any;
        baseUrl: string;
        loadBundleManifest?: boolean;
    }): Promise<t.ISiteManifest | undefined>;
    static create: (args: ISiteArgs) => Site;
    private constructor();
    readonly index: number;
    private readonly manifest;
    private _routes;
    private _regexes;
    private readonly def;
    readonly name: string;
    readonly domain: string[];
    readonly bundle: string;
    readonly bundleUrl: string;
    readonly version: string;
    readonly size: string;
    readonly files: string[];
    readonly routes: Route[];
    isMatch(domain: string | string[]): boolean;
    route(path?: string): Route | undefined;
    redirectUrl(path?: string): string;
    toObject(): {
        name: string;
        domain: string[];
        bundle: string;
        routes: {
            [key: string]: t.ISiteManifestRoute;
        };
        size: string;
        bytes: number;
        baseUrl: string;
        files: string[];
        entries: t.IBundleEntryHtml[];
    };
}
export declare function toDomainRegexes(domains: string[]): RegExp[];
