import type { AppExtensionIndexEntry, ServiceIndexEntry } from "../project-index/index.js";
import type { ServiceDependencyReport } from "../diagnostics/service-deps.js";
import type { GeneratedFileResult } from "./write-generated-file.js";
export interface ServiceManifestPayload {
    schemaVersion: 1;
    kind: "services-manifest";
    target: "services";
    serviceCount: number;
    appExtensionCount: number;
    summary: {
        topLevelServices: number;
        nestedServices: number;
        dependencyEdges: number;
        dependencyCycles: number;
        conflictingAppExtensions: number;
        lowConfidenceAppExtensions: number;
    };
    services: Array<{
        serviceKey: string;
        keySegments: string[];
        fileRelativePath: string;
        importPath: string;
    }>;
    appExtensions: Array<{
        propertyKey: string;
        inferredTypeText: string;
        pluginRelativePaths: string[];
        sourceKinds: string[];
        confidence: "high" | "medium" | "low";
        conflict: boolean;
    }>;
    dependencies: {
        edges: Array<{
            from: string;
            to: string;
        }>;
        cycles: string[][];
    };
}
export declare function writeServiceManifestFile(rootDir: string, entries: ServiceIndexEntry[], appExtensions: AppExtensionIndexEntry[], dependencyReport: ServiceDependencyReport, options?: {
    checkOnly?: boolean;
}): Promise<GeneratedFileResult>;
export declare function buildServiceManifestPayload(rootDir: string, entries: ServiceIndexEntry[], appExtensions: AppExtensionIndexEntry[], dependencyReport: ServiceDependencyReport): ServiceManifestPayload;
