import { type ProjectType } from "../core/config.js";
import { DEFAULT_PROJECT_LEARNINGS_FILE } from "../core/project-config.js";
declare const MANAGED = "managed";
declare const HOOKS = "hooks";
declare const WORKFLOWS = "workflows";
/** Template categories reported by separate deterministic findings. */
export type ManagedTemplateCategory = typeof MANAGED | typeof HOOKS | typeof WORKFLOWS;
/** Stale or unresolvable reusable-workflow inputs. */
export interface WorkflowInputInspection {
    readonly stale: readonly string[];
    readonly unknown: readonly string[];
}
/** Safely-detected project shape reused by health probes. */
export interface HealthProjectShape {
    readonly types: readonly ProjectType[];
    readonly packageJson: Readonly<Record<string, unknown>> | undefined;
}
/**
 * Detect project types using only confined, bounded project reads.
 * @param projectRoot - Canonical host project root
 * @returns Safe project shape
 */
export declare function detectHealthProjectShape(projectRoot: string): Promise<HealthProjectShape>;
/**
 * Backward-compatible type-only detector surface.
 * @param projectRoot
 */
export declare function detectHealthProjectTypes(projectRoot: string): Promise<readonly ProjectType[]>;
/**
 * Inspect one category using Lisa's shared ownership and pure comparators.
 * @param lisaRoot - Lisa package root
 * @param projectRoot - Canonical host root
 * @param types - Canonically ordered types
 * @param category - Health category
 * @param config - Safe project config
 * @returns Sorted project-relative drift paths
 */
export declare function inspectManagedTemplates(lisaRoot: string, projectRoot: string, types: readonly ProjectType[], category: ManagedTemplateCategory, config?: Readonly<Record<string, unknown>>): Promise<readonly string[]>;
/**
 * Require applicable create-only workflow presence while preserving bytes.
 * @param lisaRoot - Lisa package root
 * @param projectRoot - Canonical host root
 * @param types - Canonically ordered types
 * @param config - Safe project config
 * @returns Missing workflow paths
 */
export declare function inspectCreateOnlyWorkflows(lisaRoot: string, projectRoot: string, types: readonly ProjectType[], config?: Readonly<Record<string, unknown>>): Promise<readonly string[]>;
/**
 * Inspect applicable create-only workflow caller inputs against shipped contracts.
 * @param lisaRoot - Lisa package root
 * @param projectRoot - Canonical host root
 * @param types - Canonically ordered types
 * @param config - Safe project config
 * @returns Stale and unknown caller descriptions
 */
export declare function inspectWorkflowInputs(lisaRoot: string, projectRoot: string, types: readonly ProjectType[], config?: Readonly<Record<string, unknown>>): Promise<WorkflowInputInspection>;
/**
 * Inspect package.json through the exact pure package-lisa planner.
 * @param lisaRoot - Lisa package root
 * @param projectRoot - Canonical host root
 * @param types - Safely detected project types
 * @param packageJson - Safely captured package document
 * @returns Whether package.json conforms
 */
export declare function packageJsonConforms(lisaRoot: string, projectRoot: string, types?: readonly ProjectType[], packageJson?: Readonly<Record<string, unknown>>): Promise<boolean>;
export { DEFAULT_PROJECT_LEARNINGS_FILE };
//# sourceMappingURL=template-inspection.d.ts.map