import type { SeedReference } from "./seed.js"; export declare const AIRIC_DIR = ".airic"; export declare const PROJECT_SCOPE_DIR = "project"; export type OperatingModelScope = "base" | "project"; export interface AiricConfig { schema: "airic/v1"; seed: SeedReference; packs: string[]; } export type LoadingMechanism = "activation" | "assignment" | "linked" | "retrieval" | "tool-bound" | "authoring"; export type ArtifactActivation = "resident" | "on-demand"; export type LinkRelation = "required" | "selectable" | "discoverable" | "reference"; export type LinkTrigger = "source-active" | "target-active"; export interface LoadingContract { mechanism: LoadingMechanism; activation: ArtifactActivation[]; } export interface ArtifactType { id: string; type?: string; title: string; summary: string; loading: LoadingContract; traceRole?: string; path: string; packId: string; scope: OperatingModelScope; body: string; } export interface ArtifactLink { target: string; relation: LinkRelation; trigger: LinkTrigger; slot?: string; } export interface Artifact { id: string; type: string; title: string; summary: string; activation?: ArtifactActivation; tool?: string; when: string[]; links: ArtifactLink[]; supersedes: string[]; path: string; relativePath: string; packId: string; scope: OperatingModelScope; body: string; } export interface DocPack { id: string; name: string; version: string; summary: string; requires: string[]; path: string; scope: OperatingModelScope; } export interface OperatingModel { root: string; config: AiricConfig; packs: DocPack[]; types: Map; artifacts: Map; } export interface ModelLoadResult { initialized: boolean; model?: OperatingModel; errors: string[]; } /** A mode is a single, session-wide operating posture. */ export declare function isModeType(type: ArtifactType | undefined): boolean; /** A role is a persistent responsibility loaded by a task assignment. */ export declare function isRoleType(type: ArtifactType | undefined): boolean; export declare function airicRoot(cwd: string): string; export declare function readAiricConfig(cwd: string): Promise<{ root: string; config: AiricConfig; }>; export declare function writeAiricConfig(cwd: string, config: AiricConfig): Promise; export declare function loadOperatingModel(cwd: string): Promise; export declare function resolveInside(root: string, candidate: string): string;