import { IFilePatch, ProjectorOtto } from '../otto.ts';
/**
 * ProjectorOttoMac object.
 */
export declare class ProjectorOttoMac extends ProjectorOtto {
    /**
     * Binary name.
     */
    binaryName: string | null;
    /**
     * Intel binary package, not universal binary.
     */
    intel: boolean;
    /**
     * Icon data.
     */
    iconData: Readonly<Uint8Array> | (() => Readonly<Uint8Array>) | (() => Promise<Readonly<Uint8Array>>) | null;
    /**
     * Icon file.
     */
    iconFile: string | null;
    /**
     * Info.plist data.
     * Currently only supports XML plist.
     */
    infoPlistData: string | Readonly<Uint8Array> | (() => string | Readonly<Uint8Array>) | (() => Promise<string | Readonly<Uint8Array>>) | null;
    /**
     * Info.plist file.
     * Currently only supports XML plist.
     */
    infoPlistFile: string | null;
    /**
     * PkgInfo data.
     */
    pkgInfoData: string | Readonly<Uint8Array> | (() => Readonly<Uint8Array>) | (() => Promise<Readonly<Uint8Array>>) | null;
    /**
     * PkgInfo file.
     */
    pkgInfoFile: string | null;
    /**
     * Update the bundle name in Info.plist.
     * Possible values:
     * - false: Leave untouched.
     * - true: Output name.
     * - null: Remove value.
     * - string: Custom value.
     */
    bundleName: boolean | string | null;
    /**
     * Nest Xtras at *.app/Contents/xtras.
     */
    nestXtrasContents: boolean;
    /**
     * ProjectorOttoMac constructor.
     *
     * @param path Output path.
     */
    constructor(path: string);
    /**
     * @inheritdoc
     */
    get extension(): string;
    /**
     * @inheritdoc
     */
    get configNewline(): string;
    /**
     * @inheritdoc
     */
    get lingoNewline(): string;
    /**
     * @inheritdoc
     */
    get splashImageExtension(): string;
    /**
     * If icon is specified.
     *
     * @returns Has icon.
     */
    get hasIcon(): boolean;
    /**
     * If Info.plist is specified.
     *
     * @returns Has Info.plist.
     */
    get hasInfoPlist(): boolean;
    /**
     * If PkgInfo is specified.
     *
     * @returns Has PkgInfo.
     */
    get hasPkgInfo(): boolean;
    /**
     * Get the Projector Resources directory name.
     *
     * @returns Directory name.
     */
    get projectorResourcesDirectoryName(): "Projector Intel Resources" | "Projector Resources";
    /**
     * Get app binary name, default.
     *
     * @returns File name.
     */
    get appBinaryNameDefault(): string;
    /**
     * Get app binary name, custom.
     *
     * @returns File name.
     */
    get appBinaryNameCustom(): string | null;
    /**
     * Get app binary name.
     *
     * @returns File name.
     */
    get appBinaryName(): string;
    /**
     * Get app icon name, default.
     *
     * @returns File name.
     */
    get appIconNameDefault(): string;
    /**
     * Get app icon name, custom.
     *
     * @returns File name.
     */
    get appIconNameCustom(): string | null;
    /**
     * Get app icon name.
     *
     * @returns File name.
     */
    get appIconName(): string;
    /**
     * Get app rsrc name, default.
     *
     * @returns File name.
     */
    get appRsrcNameDefault(): string;
    /**
     * Get app rsrc name, custom.
     *
     * @returns File name.
     */
    get appRsrcNameCustom(): string | null;
    /**
     * Get app rsrc name.
     *
     * @returns File name.
     */
    get appRsrcName(): string;
    /**
     * Get app Info.plist path.
     *
     * @returns File path.
     */
    get appPathInfoPlist(): string;
    /**
     * Get app PkgInfo path.
     *
     * @returns File path.
     */
    get appPathPkgInfo(): string;
    /**
     * Get app Frameworks path.
     *
     * @returns File path.
     */
    get appPathFrameworks(): string;
    /**
     * Get app Xtras path.
     *
     * @returns Directory path.
     */
    get appPathXtras(): string;
    /**
     * Get app binary path, default.
     *
     * @returns File path.
     */
    get appPathBinaryDefault(): string;
    /**
     * Get app binary path, custom.
     *
     * @returns File path.
     */
    get appPathBinaryCustom(): string | null;
    /**
     * Get app binary path.
     *
     * @returns File path.
     */
    get appPathBinary(): string;
    /**
     * Get app icon path, default.
     *
     * @returns File path.
     */
    get appPathIconDefault(): string;
    /**
     * Get app icon path, custom.
     *
     * @returns File path.
     */
    get appPathIconCustom(): string | null;
    /**
     * Get app icon path.
     *
     * @returns File path.
     */
    get appPathIcon(): string;
    /**
     * Get app rsrc path, default.
     *
     * @returns File path.
     */
    get appPathRsrcDefault(): string;
    /**
     * Get app rsrc path, custom.
     *
     * @returns File path.
     */
    get appPathRsrcCustom(): string | null;
    /**
     * Get app rsrc path.
     *
     * @returns File path.
     */
    get appPathRsrc(): string;
    /**
     * Get the icon path.
     *
     * @returns Icon path.
     */
    get iconPath(): string;
    /**
     * Get the Info.plist path.
     *
     * @returns Info.plist path.
     */
    get infoPlistPath(): string;
    /**
     * Get the PkgInfo path.
     *
     * @returns PkgInfo path.
     */
    get pkgInfoPath(): string;
    /**
     * Get the binary path.
     *
     * @returns Binary path.
     */
    get binaryPath(): string;
    /**
     * Get outout Xtras path.
     *
     * @returns Output path.
     */
    get xtrasPath(): string;
    /**
     * Get icon data if any specified, from data or file.
     *
     * @returns Icon data or null.
     */
    getIconData(): Promise<Readonly<Uint8Array> | null>;
    /**
     * Get Info.plist data if any specified, from data or file.
     *
     * @returns Info.plist data or null.
     */
    getInfoPlistData(): Promise<string | null>;
    /**
     * Get PkgInfo data if any specified, from data or file.
     *
     * @returns PkgInfo data or null.
     */
    getPkgInfoData(): Promise<Readonly<Uint8Array> | null>;
    /**
     * Get configured bundle name, or null to remove.
     *
     * @returns New name or null.
     */
    getBundleName(): string | false | null;
    /**
     * @inheritdoc
     */
    protected _writeSkeleton(skeleton: string): Promise<void>;
    /**
     * Get patches to apply.
     *
     * @returns Patches list.
     */
    protected _getPatches(): Promise<IFilePatch[]>;
    /**
     * Get patch for icon.
     *
     * @returns Patch spec.
     */
    protected _getPatchIcon(): Promise<IFilePatch | null>;
    /**
     * Get patch for PkgInfo.
     *
     * @returns Patch spec.
     */
    protected _getPatchPkgInfo(): Promise<IFilePatch | null>;
    /**
     * Get patch for Info.plist.
     *
     * @returns Patch spec.
     */
    protected _getPatchInfoPlist(): Promise<IFilePatch | null>;
}
