import { ProjectorOtto } from '../projector/otto.ts';
import { Bundle } from '../bundle.ts';
/**
 * BundleOtto object.
 */
export declare abstract class BundleOtto extends Bundle {
    /**
     * ProjectorOtto instance.
     */
    abstract readonly projector: ProjectorOtto;
    /**
     * BundleOtto constructor.
     *
     * @param path Output path.
     * @param flat Flat bundle.
     */
    constructor(path: string, flat?: boolean);
    /**
     * @inheritdoc
     */
    protected _close(): Promise<void>;
    /**
     * Main application file extension.
     *
     * @returns File extension.
     */
    abstract get extension(): string;
    /**
     * Create projector instance for the bundle.
     *
     * @returns Projector instance.
     */
    protected abstract _createProjector(): ProjectorOtto;
    /**
     * Write the launcher file.
     */
    protected abstract _writeLauncher(): Promise<void>;
}
