import { ivm } from './';
export interface Release {
    app: string;
    version: number;
    source: string;
    source_hash: string;
    source_map?: string;
    config: any;
    hash?: string;
    secrets: any;
    env: string;
    files?: string[];
}
export declare class App {
    release: Release;
    /** a unique app identifier, used for scoping cache/etc */
    id: any;
    private _config;
    constructor(release: Release);
    readonly name: string;
    readonly env: string;
    readonly files: string[] | undefined;
    readonly config: any;
    readonly source: string;
    readonly version: number;
    readonly hash: string | undefined;
    readonly sourceHash: string;
    readonly sourceMap: string | undefined;
    asJSON(): {
        name: string;
        config: any;
        version: number;
        env: string;
    };
    forV8(): ivm.Copy<{
        name: string;
        config: any;
        version: number;
        env: string;
    }>;
}
