import type { CompilationChange, CompilationGraphSnapshot, CompilationSnapshot, SourceKind, SourceScope } from './types.js';
export interface CompilationScopeDependency {
    id: string;
    kind: SourceKind;
}
export interface CompilationDependencyChange {
    id: string;
    type: 'dependency-changed' | 'config-changed';
}
export interface CompilationScopeGraphSource {
    id: string;
    kind: SourceKind;
    content?: string | undefined;
    dependencies?: CompilationScopeDependency[] | undefined;
}
export interface CompilationScopeSnapshotSource extends CompilationScopeGraphSource {
    candidates: Iterable<string>;
}
export interface CreateCompilationScopeSnapshotOptions {
    changes?: CompilationChange[] | undefined;
    preserveDeletedCss?: boolean | undefined;
    validatedClassSet?: Iterable<string> | undefined;
}
export declare function sourceNodeId(sourceId: string): string;
export declare function dependencyNodeId(dependencyId: string): string;
export declare function createCompilationDependencyChanges(dependencyIds: Iterable<string>, type?: CompilationDependencyChange['type']): CompilationDependencyChange[];
export declare function mergeCompilationDependencyChanges(...groups: Array<Iterable<CompilationDependencyChange> | undefined>): CompilationDependencyChange[];
export declare function mergeCompilationScopeDependencies(...groups: Array<Iterable<CompilationScopeDependency> | undefined>): CompilationScopeDependency[];
export declare function dependencySignature(source: CompilationScopeGraphSource): string;
export declare function createCompilationScopeGraph(scope: SourceScope, outputId: string, sources: Iterable<CompilationScopeGraphSource>): CompilationGraphSnapshot;
export declare function createCompilationScopeSnapshot(scope: SourceScope, outputId: string, sources: Iterable<CompilationScopeSnapshotSource>, options?: CreateCompilationScopeSnapshotOptions): CompilationSnapshot;
