import { Effects } from '../Effects';
import { PackageId } from '../osBindings';
import { ServiceInterfaceFilled } from './getServiceInterface';
import { Watchable } from './Watchable';
export declare class GetServiceInterfaces<Mapped = ServiceInterfaceFilled[]> extends Watchable<ServiceInterfaceFilled[], Mapped> {
    readonly opts: {
        packageId?: string;
    };
    protected readonly label = "GetServiceInterfaces";
    constructor(effects: Effects, opts: {
        packageId?: string;
    }, options?: {
        map?: (value: ServiceInterfaceFilled[]) => Mapped;
        eq?: (a: Mapped, b: Mapped) => boolean;
    });
    protected fetch(callback?: () => void): Promise<ServiceInterfaceFilled[]>;
}
export declare function getOwnServiceInterfaces(effects: Effects): GetServiceInterfaces;
export declare function getOwnServiceInterfaces<Mapped>(effects: Effects, map: (interfaces: ServiceInterfaceFilled[]) => Mapped, eq?: (a: Mapped, b: Mapped) => boolean): GetServiceInterfaces<Mapped>;
export declare function getServiceInterfaces(effects: Effects, opts: {
    packageId: PackageId;
}): GetServiceInterfaces;
export declare function getServiceInterfaces<Mapped>(effects: Effects, opts: {
    packageId: PackageId;
}, map: (interfaces: ServiceInterfaceFilled[]) => Mapped, eq?: (a: Mapped, b: Mapped) => boolean): GetServiceInterfaces<Mapped>;
