import type { RoutesModule } from '../boot/registry/type';
export interface ServiceManifestEntry {
    id: string;
    domain: string;
    name: string;
    prefix?: string;
    configRoot?: string;
    loadEnv?: boolean;
    version?: string;
    description?: string;
    port?: number;
    healthCheck?: string;
    monolithEnabled?: boolean;
    loadRoutes?: () => Promise<RoutesModule>;
}
export interface ActiveServiceRuntime {
    id: string;
    domain: string;
    name: string;
    configRoot?: string;
}
export interface ProjectRuntimeModule {
    serviceManifest?: ReadonlyArray<ServiceManifestEntry>;
    activeService?: ActiveServiceRuntime;
}
export declare const getServiceId: (domain: string, name: string) => string;
export declare const getDefaultServicePrefix: (domain: string, name: string) => string;
export declare const getServicePrefix: (args: {
    prefix?: unknown;
    domain?: unknown;
    name?: unknown;
}) => string;
export declare const isCanonicalServiceId: (value: unknown) => value is string;
export declare const toCanonicalServiceId: (args: {
    id?: unknown;
    domain?: unknown;
    name?: unknown;
}) => string;
export declare const isServiceManifestEntry: (value: unknown) => value is ServiceManifestEntry;
export declare const normalizeServiceManifest: (value: unknown) => ReadonlyArray<ServiceManifestEntry>;
export declare const normalizeActiveServiceRuntime: (value: unknown) => ActiveServiceRuntime | undefined;
export declare const normalizeProjectRuntimeModule: (value: unknown) => ProjectRuntimeModule;
export declare const serviceMatchesAllowList: (serviceId: string, serviceName: string, allowList: ReadonlyArray<string>) => boolean;
declare const _default: Readonly<{
    getServiceId: (domain: string, name: string) => string;
    getDefaultServicePrefix: (domain: string, name: string) => string;
    getServicePrefix: (args: {
        prefix?: unknown;
        domain?: unknown;
        name?: unknown;
    }) => string;
    isCanonicalServiceId: (value: unknown) => value is string;
    toCanonicalServiceId: (args: {
        id?: unknown;
        domain?: unknown;
        name?: unknown;
    }) => string;
    isServiceManifestEntry: (value: unknown) => value is ServiceManifestEntry;
    normalizeServiceManifest: (value: unknown) => ReadonlyArray<ServiceManifestEntry>;
    normalizeActiveServiceRuntime: (value: unknown) => ActiveServiceRuntime | undefined;
    normalizeProjectRuntimeModule: (value: unknown) => ProjectRuntimeModule;
    serviceMatchesAllowList: (serviceId: string, serviceName: string, allowList: ReadonlyArray<string>) => boolean;
}>;
export default _default;
//# sourceMappingURL=ServiceManifest.d.ts.map