export class DNSService extends ExtraSourceService {
    static get typeDefinition(): {
        name: string;
        specializationOf: {
            name: string;
            owners: string[];
            priority: number;
            extends: {
                name: string;
                owners: any[];
                properties: {
                    owner: {
                        type: string;
                        collection: boolean;
                        writeable: boolean;
                    };
                    type: {
                        type: string;
                        collection: boolean;
                        writeable: boolean;
                    };
                    name: {
                        type: string;
                        collection: boolean;
                        identifier: boolean;
                        writeable: boolean;
                    };
                    description: {
                        type: string;
                        collection: boolean;
                        writeable: boolean;
                    };
                    priority: {
                        type: string;
                        collection: boolean;
                        writeable: boolean;
                    };
                    directory: {
                        type: string;
                        collection: boolean;
                        writeable: boolean;
                    };
                    packaging: {
                        type: string;
                        collection: boolean;
                        writeable: boolean;
                    };
                    tags: {
                        type: string;
                        collection: boolean;
                        writeable: boolean;
                    };
                };
            };
            specializations: {};
            factoryFor(owner: any, value: any): any;
            properties: {
                ipAddresses: {
                    type: string;
                    collection: boolean;
                    writeable: boolean;
                };
                alias: {
                    type: string;
                    collection: boolean;
                    writeable: boolean;
                };
                weight: {
                    type: string;
                    collection: boolean;
                    writeable: boolean;
                    default: number;
                };
                systemd: {
                    type: string;
                    collection: boolean;
                    writeable: boolean;
                };
                port: {
                    type: string;
                    collection: boolean;
                    writeable: boolean;
                };
                protocol: {
                    type: string;
                    collection: boolean;
                    writeable: boolean;
                    values: string[];
                };
                type: {
                    type: string;
                    collection: boolean;
                    writeable: boolean;
                };
                tls: {
                    type: string;
                    collection: boolean;
                    writeable: boolean;
                    default: boolean;
                };
                hostName: {
                    type: string;
                    collection: boolean;
                    writeable: boolean;
                };
                cidrAddresses: {
                    type: string;
                    collection: boolean;
                    writeable: boolean;
                };
                cidrAddress: {
                    type: string;
                    collection: boolean;
                    writeable: boolean;
                };
                addresses: {
                    type: string;
                    collection: boolean;
                    writeable: boolean;
                };
                address: {
                    type: string;
                    collection: boolean;
                    writeable: boolean;
                };
            };
        };
        owners: string[];
        extends: {
            name: string;
            owners: string[];
            extends: {
                name: string;
                owners: string[];
                priority: number;
                extends: {
                    name: string;
                    owners: any[];
                    properties: {
                        owner: {
                            type: string;
                            collection: boolean;
                            writeable: boolean;
                        };
                        type: {
                            type: string;
                            collection: boolean;
                            writeable: boolean;
                        };
                        name: {
                            type: string;
                            collection: boolean;
                            identifier: boolean;
                            writeable: boolean;
                        };
                        description: {
                            type: string;
                            collection: boolean;
                            writeable: boolean;
                        };
                        priority: {
                            type: string;
                            collection: boolean;
                            writeable: boolean;
                        };
                        directory: {
                            type: string;
                            collection: boolean;
                            writeable: boolean;
                        };
                        packaging: {
                            type: string;
                            collection: boolean;
                            writeable: boolean;
                        };
                        tags: {
                            type: string;
                            collection: boolean;
                            writeable: boolean;
                        };
                    };
                };
                specializations: {};
                factoryFor(owner: any, value: any): any;
                properties: {
                    ipAddresses: {
                        type: string;
                        collection: boolean;
                        writeable: boolean;
                    };
                    alias: {
                        type: string;
                        collection: boolean;
                        writeable: boolean;
                    };
                    weight: {
                        type: string;
                        collection: boolean;
                        writeable: boolean;
                        default: number;
                    };
                    systemd: {
                        type: string;
                        collection: boolean;
                        writeable: boolean;
                    };
                    port: {
                        type: string;
                        collection: boolean;
                        writeable: boolean;
                    };
                    protocol: {
                        type: string;
                        collection: boolean;
                        writeable: boolean;
                        values: string[];
                    };
                    type: {
                        type: string;
                        collection: boolean;
                        writeable: boolean;
                    };
                    tls: {
                        type: string;
                        collection: boolean;
                        writeable: boolean;
                        default: boolean;
                    };
                    hostName: {
                        type: string;
                        collection: boolean;
                        writeable: boolean;
                    };
                    cidrAddresses: {
                        type: string;
                        collection: boolean;
                        writeable: boolean;
                    };
                    cidrAddress: {
                        type: string;
                        collection: boolean;
                        writeable: boolean;
                    };
                    addresses: {
                        type: string;
                        collection: boolean;
                        writeable: boolean;
                    };
                    address: {
                        type: string;
                        collection: boolean;
                        writeable: boolean;
                    };
                };
            };
            priority: number;
            properties: {
                source: {
                    type: string;
                    collection: boolean;
                    writeable: boolean;
                };
            };
        };
        priority: number;
        properties: {
            trusted: {
                type: string[];
                collection: boolean;
                writeable: boolean;
            };
            protected: {
                type: string[];
                collection: boolean;
                writeable: boolean;
            };
            open: {
                type: string[];
                collection: boolean;
                writeable: boolean;
            };
            hasSVRRecords: {
                type: string;
                collection: boolean;
                writeable: boolean;
                default: boolean;
            };
            hasCatalog: {
                type: string;
                collection: boolean;
                writeable: boolean;
                default: boolean;
            };
            hasLinkLocalAdresses: {
                type: string;
                collection: boolean;
                writeable: boolean;
                default: boolean;
            };
            excludeInterfaceKinds: {
                type: string;
                collection: boolean;
                writeable: boolean;
            };
            exclude: {
                type: string[];
                collection: boolean;
                writeable: boolean;
            };
            notify: {
                type: string;
                collection: boolean;
                writeable: boolean;
                default: boolean;
            };
            recordTTL: {
                type: string;
                collection: boolean;
                writeable: boolean;
            };
            serial: {
                type: string;
                collection: boolean;
                writeable: boolean;
            };
            refresh: {
                type: string;
                collection: boolean;
                writeable: boolean;
            };
            retry: {
                type: string;
                collection: boolean;
                writeable: boolean;
            };
            expire: {
                type: string;
                collection: boolean;
                writeable: boolean;
            };
            minimum: {
                type: string;
                collection: boolean;
                writeable: boolean;
            };
            allowedUpdates: {
                type: string;
                collection: boolean;
                writeable: boolean;
            };
        };
    };
    allowedUpdates: any[];
    recordTTL: string;
    hasSVRRecords: boolean;
    hasCatalog: boolean;
    hasLinkLocalAdresses: boolean;
    notify: boolean;
    _trusted: any[];
    _protected: any[];
    _open: any[];
    _exclude: Set<any>;
    _excludeInterfaceKinds: Set<any>;
    serial: number;
    refresh: number;
    retry: number;
    expire: number;
    minimum: number;
    get soaUpdates(): number[];
    set protected(value: any[]);
    get protected(): any[];
    set trusted(value: any[]);
    get trusted(): any[];
    set open(value: any[]);
    get open(): any[];
    set exclude(value: Set<any>);
    get exclude(): Set<any>;
    set excludeInterfaceKinds(value: Set<any>);
    get excludeInterfaceKinds(): Set<any>;
    get systemdConfig(): (string | {
        DNS: string;
        FallbackDNS: string;
        Domains: string;
        DNSSEC: string;
        MulticastDNS: string;
        LLMNR: string;
    })[];
    preparePackages(dir: any): AsyncGenerator<{
        dir: string;
        sources: FileContentProvider[];
        outputs: Set<typeof import("npm-pkgbuild").ARCH | typeof import("npm-pkgbuild").DOCKER>;
        properties: {
            name: string;
            description: string;
            access: string;
        };
    }, void, unknown>;
}
import { ExtraSourceService } from "../extra-source-service.mjs";
import { FileContentProvider } from "npm-pkgbuild";
