/**
 *
 * @param {*} sources
 * @param {Object} [options]
 * @param {Function} [options.services] filter for services
 * @param {Function} [options.endpoints] filter for endpoints
 * @param {Function} [options.select] mapper from Endpoint into result
 * @param {number} [options.limit] upper limit of # result items
 * @param {string} [options.join] join result(s) into a string
 * @returns {string|any}
 */
export function serviceEndpoints(sources: any, options?: {
    services?: Function;
    endpoints?: Function;
    select?: Function;
    limit?: number;
    join?: string;
}): string | any;
export namespace endpointAttributes {
    export { number_attribute_writable as port };
    export let protocol: {
        values: string[];
        type: object;
        isKey: boolean;
        writable: boolean;
        mandatory: boolean;
        collection: boolean;
        constructor?: Function;
        private?: boolean;
        credential?: boolean;
        persistent?: boolean;
        depends?: string;
        description?: string;
        default?: any;
        set?: Function;
        get?: Function;
        toInternal?: Function;
        toExternal?: Function;
        externalName?: string;
        env?: string[] | string;
        additionalValues?: object;
    };
    export { string_attribute_writable as type };
    export { string_set_attribute as types };
    export { boolean_attribute_false as tls };
}
export namespace EndpointTypeDefinition {
    export let name: string;
    export let owners: string[];
    export let specializations: {};
    export let key: string;
    export { endpointAttributes as attributes };
}
export namespace ServiceTypeDefinition {
    let name_1: string;
    export { name_1 as name };
    let owners_1: (string | {
        name: string;
        owners: string[];
        extends: typeof Base;
        key: string;
        attributes: {
            networkInterfaces: {
                type: string;
                collection: boolean;
                isKey: boolean;
                writable: boolean;
                mandatory: boolean;
                constructor?: Function;
                private?: boolean;
                credential?: boolean;
                persistent?: boolean;
                depends?: string;
                description?: string;
                default?: any;
                set?: Function;
                get?: Function;
                toInternal?: Function;
                toExternal?: Function;
                values?: Set<any>;
                externalName?: string;
                env?: string[] | string;
                additionalValues?: object;
            };
            services: {
                type: string;
                collection: boolean;
                isKey: boolean;
                writable: boolean;
                mandatory: boolean;
                constructor?: Function;
                private?: boolean;
                credential?: boolean;
                persistent?: boolean;
                depends?: string;
                description?: string;
                default?: any;
                set?: Function;
                get?: Function;
                toInternal?: Function;
                toExternal?: Function;
                values?: Set<any>;
                externalName?: string;
                env?: string[] | string;
                additionalValues?: object;
            };
            aliases: import("pacc").AttributeDefinition;
            os: {
                values: string[];
                type: object;
                isKey: boolean;
                writable: boolean;
                mandatory: boolean;
                collection: boolean;
                constructor?: Function;
                private?: boolean;
                credential?: boolean;
                persistent?: boolean;
                depends?: string;
                description?: string;
                default?: any;
                set?: Function;
                get?: Function;
                toInternal?: Function;
                toExternal?: Function;
                externalName?: string;
                env?: string[] | string;
                additionalValues?: object;
            };
            "machine-id": import("pacc").AttributeDefinition;
            distribution: import("pacc").AttributeDefinition;
            deployment: {
                values: string[];
                type: object;
                isKey: boolean;
                writable: boolean;
                mandatory: boolean;
                collection: boolean;
                constructor?: Function;
                private?: boolean;
                credential?: boolean;
                persistent?: boolean;
                depends?: string;
                description?: string;
                default?: any;
                set?: Function;
                get?: Function;
                toInternal?: Function;
                toExternal?: Function;
                externalName?: string;
                env?: string[] | string;
                additionalValues?: object;
            };
            weight: import("pacc").AttributeDefinition;
            serial: import("pacc").AttributeDefinition;
            vendor: import("pacc").AttributeDefinition;
            keymap: import("pacc").AttributeDefinition;
            chassis: {
                values: string[];
                type: object;
                isKey: boolean;
                writable: boolean;
                mandatory: boolean;
                collection: boolean;
                constructor?: Function;
                private?: boolean;
                credential?: boolean;
                persistent?: boolean;
                depends?: string;
                description?: string;
                default?: any;
                set?: Function;
                get?: Function;
                toInternal?: Function;
                toExternal?: Function;
                externalName?: string;
                env?: string[] | string;
                additionalValues?: object;
            };
            architecture: {
                values: string[];
                type: object;
                isKey: boolean;
                writable: boolean;
                mandatory: boolean;
                collection: boolean;
                constructor?: Function;
                private?: boolean;
                credential?: boolean;
                persistent?: boolean;
                depends?: string;
                description?: string;
                default?: any;
                set?: Function;
                get?: Function;
                toInternal?: Function;
                toExternal?: Function;
                externalName?: string;
                env?: string[] | string;
                additionalValues?: object;
            };
            replaces: import("pacc").AttributeDefinition;
            depends: import("pacc").AttributeDefinition;
            provides: import("pacc").AttributeDefinition;
            extends: {
                type: string;
                collection: boolean;
                isKey: boolean;
                writable: boolean;
                mandatory: boolean;
                constructor?: Function;
                private?: boolean;
                credential?: boolean;
                persistent?: boolean;
                depends?: string;
                description?: string;
                default?: any;
                set?: Function;
                get?: Function;
                toInternal?: Function;
                toExternal?: Function;
                values?: Set<any>;
                externalName?: string;
                env?: string[] | string;
                additionalValues?: object;
            };
            model: import("pacc").AttributeDefinition;
            isModel: import("pacc").AttributeDefinition;
            hostName: {
                writable: boolean;
                type: object;
                isKey: boolean;
                mandatory: boolean;
                collection: boolean;
                constructor?: Function;
                private?: boolean;
                credential?: boolean;
                persistent?: boolean;
                depends?: string;
                description?: string;
                default?: any;
                set?: Function;
                get?: Function;
                toInternal?: Function;
                toExternal?: Function;
                values?: Set<any>;
                externalName?: string;
                env?: string[] | string;
                additionalValues?: object;
            };
            cidrAddresses: import("pacc").AttributeDefinition;
            cidrAddress: import("pacc").AttributeDefinition;
            addresses: import("pacc").AttributeDefinition;
            address: import("pacc").AttributeDefinition;
        };
    })[];
    export { owners_1 as owners };
    let _extends: typeof Base;
    export { _extends as extends };
    let specializations_1: {};
    export { specializations_1 as specializations };
    export function factoryFor(owner: any, value: any): any;
    let key_1: string;
    export { key_1 as key };
    export let attributes: {
        alias: import("pacc").AttributeDefinition;
        weight: {
            type: object;
            isKey: boolean;
            writable: boolean;
            mandatory: boolean;
            collection: boolean;
            constructor?: Function;
            private?: boolean;
            credential?: boolean;
            persistent?: boolean;
            depends?: string;
            description?: string;
            default?: any;
            set?: Function;
            get?: Function;
            toInternal?: Function;
            toExternal?: Function;
            values?: Set<any>;
            externalName?: string;
            env?: string[] | string;
            additionalValues?: object;
        };
        systemdService: import("pacc").AttributeDefinition;
        port: import("pacc").AttributeDefinition;
        protocol: {
            values: string[];
            type: object;
            isKey: boolean;
            writable: boolean;
            mandatory: boolean;
            collection: boolean;
            constructor?: Function;
            private?: boolean;
            credential?: boolean;
            persistent?: boolean;
            depends?: string;
            description?: string;
            default?: any;
            set?: Function;
            get?: Function;
            toInternal?: Function;
            toExternal?: Function;
            externalName?: string;
            env?: string[] | string;
            additionalValues?: object;
        };
        type: import("pacc").AttributeDefinition;
        types: import("pacc").AttributeDefinition;
        tls: import("pacc").AttributeDefinition;
        hostName: {
            writable: boolean;
            type: object;
            isKey: boolean;
            mandatory: boolean;
            collection: boolean;
            constructor?: Function;
            private?: boolean;
            credential?: boolean;
            persistent?: boolean;
            depends?: string;
            description?: string;
            default?: any;
            set?: Function;
            get?: Function;
            toInternal?: Function;
            toExternal?: Function;
            values?: Set<any>;
            externalName?: string;
            env?: string[] | string;
            additionalValues?: object;
        };
        cidrAddresses: import("pacc").AttributeDefinition;
        cidrAddress: import("pacc").AttributeDefinition;
        addresses: import("pacc").AttributeDefinition;
        address: import("pacc").AttributeDefinition;
    };
}
export class Service extends Base {
    static get typeDefinition(): {
        name: string;
        owners: (string | {
            name: string;
            owners: string[];
            extends: typeof Base;
            key: string;
            attributes: {
                networkInterfaces: {
                    type: string;
                    collection: boolean;
                    isKey: boolean;
                    writable: boolean;
                    mandatory: boolean;
                    constructor?: Function;
                    private?: boolean;
                    credential?: boolean;
                    persistent?: boolean;
                    depends?: string;
                    description?: string;
                    default?: any;
                    set?: Function;
                    get?: Function;
                    toInternal?: Function;
                    toExternal?: Function;
                    values?: Set<any>;
                    externalName?: string;
                    env?: string[] | string;
                    additionalValues?: object;
                };
                services: {
                    type: string;
                    collection: boolean;
                    isKey: boolean;
                    writable: boolean;
                    mandatory: boolean;
                    constructor?: Function;
                    private?: boolean;
                    credential?: boolean;
                    persistent?: boolean;
                    depends?: string;
                    description?: string;
                    default?: any;
                    set?: Function;
                    get?: Function;
                    toInternal?: Function;
                    toExternal?: Function;
                    values?: Set<any>;
                    externalName?: string;
                    env?: string[] | string;
                    additionalValues?: object;
                };
                aliases: import("pacc").AttributeDefinition;
                os: {
                    values: string[];
                    type: object;
                    isKey: boolean;
                    writable: boolean;
                    mandatory: boolean;
                    collection: boolean;
                    constructor?: Function;
                    private?: boolean;
                    credential?: boolean;
                    persistent?: boolean;
                    depends?: string;
                    description?: string;
                    default?: any;
                    set?: Function;
                    get?: Function;
                    toInternal?: Function;
                    toExternal?: Function;
                    externalName?: string;
                    env?: string[] | string;
                    additionalValues?: object;
                };
                "machine-id": import("pacc").AttributeDefinition;
                distribution: import("pacc").AttributeDefinition;
                deployment: {
                    values: string[];
                    type: object;
                    isKey: boolean;
                    writable: boolean;
                    mandatory: boolean;
                    collection: boolean;
                    constructor?: Function;
                    private?: boolean;
                    credential?: boolean;
                    persistent?: boolean;
                    depends?: string;
                    description?: string;
                    default?: any;
                    set?: Function;
                    get?: Function;
                    toInternal?: Function;
                    toExternal?: Function;
                    externalName?: string;
                    env?: string[] | string;
                    additionalValues?: object;
                };
                weight: import("pacc").AttributeDefinition;
                serial: import("pacc").AttributeDefinition;
                vendor: import("pacc").AttributeDefinition;
                keymap: import("pacc").AttributeDefinition;
                chassis: {
                    values: string[];
                    type: object;
                    isKey: boolean;
                    writable: boolean;
                    mandatory: boolean;
                    collection: boolean;
                    constructor?: Function;
                    private?: boolean;
                    credential?: boolean;
                    persistent?: boolean;
                    depends?: string;
                    description?: string;
                    default?: any;
                    set?: Function;
                    get?: Function;
                    toInternal?: Function;
                    toExternal?: Function;
                    externalName?: string;
                    env?: string[] | string;
                    additionalValues?: object;
                };
                architecture: {
                    values: string[];
                    type: object;
                    isKey: boolean;
                    writable: boolean;
                    mandatory: boolean;
                    collection: boolean;
                    constructor?: Function;
                    private?: boolean;
                    credential?: boolean;
                    persistent?: boolean;
                    depends?: string;
                    description?: string;
                    default?: any;
                    set?: Function;
                    get?: Function;
                    toInternal?: Function;
                    toExternal?: Function;
                    externalName?: string;
                    env?: string[] | string;
                    additionalValues?: object;
                };
                replaces: import("pacc").AttributeDefinition;
                depends: import("pacc").AttributeDefinition;
                provides: import("pacc").AttributeDefinition;
                extends: {
                    type: string;
                    collection: boolean;
                    isKey: boolean;
                    writable: boolean;
                    mandatory: boolean;
                    constructor?: Function;
                    private?: boolean;
                    credential?: boolean;
                    persistent?: boolean;
                    depends?: string;
                    description?: string;
                    default?: any;
                    set?: Function;
                    get?: Function;
                    toInternal?: Function;
                    toExternal?: Function;
                    values?: Set<any>;
                    externalName?: string;
                    env?: string[] | string;
                    additionalValues?: object;
                };
                model: import("pacc").AttributeDefinition;
                isModel: import("pacc").AttributeDefinition;
                hostName: {
                    writable: boolean;
                    type: object;
                    isKey: boolean;
                    mandatory: boolean;
                    collection: boolean;
                    constructor?: Function;
                    private?: boolean;
                    credential?: boolean;
                    persistent?: boolean;
                    depends?: string;
                    description?: string;
                    default?: any;
                    set?: Function;
                    get?: Function;
                    toInternal?: Function;
                    toExternal?: Function;
                    values?: Set<any>;
                    externalName?: string;
                    env?: string[] | string;
                    additionalValues?: object;
                };
                cidrAddresses: import("pacc").AttributeDefinition;
                cidrAddress: import("pacc").AttributeDefinition;
                addresses: import("pacc").AttributeDefinition;
                address: import("pacc").AttributeDefinition;
            };
        })[];
        extends: typeof Base;
        specializations: {};
        factoryFor(owner: any, value: any): any;
        key: string;
        attributes: {
            alias: import("pacc").AttributeDefinition;
            weight: {
                type: object;
                isKey: boolean;
                writable: boolean;
                mandatory: boolean;
                collection: boolean;
                constructor?: Function;
                private?: boolean;
                credential?: boolean;
                persistent?: boolean;
                depends?: string;
                description?: string;
                default?: any;
                set?: Function;
                get?: Function;
                toInternal?: Function;
                toExternal?: Function;
                values?: Set<any>;
                externalName?: string;
                env?: string[] | string;
                additionalValues?: object;
            };
            systemdService: import("pacc").AttributeDefinition;
            port: import("pacc").AttributeDefinition;
            protocol: {
                values: string[];
                type: object;
                isKey: boolean;
                writable: boolean;
                mandatory: boolean;
                collection: boolean;
                constructor?: Function;
                private?: boolean;
                credential?: boolean;
                persistent?: boolean;
                depends?: string;
                description?: string;
                default?: any;
                set?: Function;
                get?: Function;
                toInternal?: Function;
                toExternal?: Function;
                externalName?: string;
                env?: string[] | string;
                additionalValues?: object;
            };
            type: import("pacc").AttributeDefinition;
            types: import("pacc").AttributeDefinition;
            tls: import("pacc").AttributeDefinition;
            hostName: {
                writable: boolean;
                type: object;
                isKey: boolean;
                mandatory: boolean;
                collection: boolean;
                constructor?: Function;
                private?: boolean;
                credential?: boolean;
                persistent?: boolean;
                depends?: string;
                description?: string;
                default?: any;
                set?: Function;
                get?: Function;
                toInternal?: Function;
                toExternal?: Function;
                values?: Set<any>;
                externalName?: string;
                env?: string[] | string;
                additionalValues?: object;
            };
            cidrAddresses: import("pacc").AttributeDefinition;
            cidrAddress: import("pacc").AttributeDefinition;
            addresses: import("pacc").AttributeDefinition;
            address: import("pacc").AttributeDefinition;
        };
    };
    _alias: any;
    _weight: any;
    _type: any;
    _port: any;
    _systemdService: any;
    get host(): Host;
    get hosts(): any;
    get domainName(): string;
    get networks(): Set<any>;
    get subnets(): Set<any>;
    get url(): any;
    get services(): this[];
    get serviceTypeEndpoints(): any;
    endpoints(filter: any): (UnixEndpoint | HTTPEndpoint | Endpoint | DomainNameEndpoint)[];
    endpoint(filter: any): UnixEndpoint | HTTPEndpoint | Endpoint | DomainNameEndpoint;
    address(options?: {
        endpoints: (e: any) => boolean;
        select: (e: any) => any;
        limit: number;
        join: string;
    }): string | any[];
    set alias(value: any);
    get alias(): any;
    set port(value: any);
    get port(): any;
    set weight(value: any);
    get weight(): any;
    set type(value: any);
    get type(): any;
    get types(): Set<any>;
    get systemdService(): any;
    preparePackages(dir: any): AsyncGenerator<{
        sources: any[];
        outputs: Set<typeof import("npm-pkgbuild").DEBIAN | typeof import("npm-pkgbuild").ARCH | typeof import("npm-pkgbuild").OCI | typeof import("npm-pkgbuild").DOCKER>;
        properties: {
            name: string;
            access: string;
            dependencies: any;
            groups: any[];
        };
    }, void, unknown>;
    dnsRecordsForDomainName(domainName: any, hasSVRRecords: any): {
        type: any;
        key: any;
        values: any[];
        toString: (maxKeyLength?: number, ttl?: string) => string;
    }[];
}
export function sortAscendingByPriority(a: any, b: any): number;
export function sortDescendingByPriority(a: any, b: any): number;
import { number_attribute_writable } from "pacc";
import { string_attribute_writable } from "pacc";
import { string_set_attribute } from "pacc";
import { boolean_attribute_false } from "pacc";
import { Base } from "pmcf";
import { Host } from "pmcf";
import { UnixEndpoint } from "pmcf";
import { HTTPEndpoint } from "pmcf";
import { Endpoint } from "pmcf";
import { DomainNameEndpoint } from "pmcf";
