import { Effects } from '../Effects';
import { Manifest, PackageId } from '../osBindings';
import { Watchable } from './Watchable';
export declare class GetServiceManifest<Mapped = Manifest | null> extends Watchable<Manifest | null, Mapped> {
    readonly opts: {
        packageId: PackageId;
    };
    protected readonly label = "GetServiceManifest";
    constructor(effects: Effects, opts: {
        packageId: PackageId;
    }, options?: {
        map?: (value: Manifest | null) => Mapped;
        eq?: (a: Mapped, b: Mapped) => boolean;
    });
    protected fetch(callback?: () => void): Promise<Manifest>;
}
export declare function getServiceManifest(effects: Effects, packageId: PackageId): GetServiceManifest<Manifest | null>;
export declare function getServiceManifest<Mapped>(effects: Effects, packageId: PackageId, map: (manifest: Manifest | null) => Mapped, eq?: (a: Mapped, b: Mapped) => boolean): GetServiceManifest<Mapped>;
