export type FragmentKind = "assumption" | "unresolved_tension" | "methodological_habit" | "knowledge_gap" | "implicit_priority" | "contradictory_positions";
export type Fragment = {
    id: string;
    userId: string;
    createdAt: number;
    expiresAt: number;
    kind: FragmentKind;
    evidence: string;
    domains: string[];
    structuralTag: string;
    strength: number;
    initialStrength?: number;
};
export type FragmentCluster = {
    id: string;
    fragmentIds: string[];
    domains: string[];
    structuralPattern: string;
    averageStrength: number;
    createdAt: number;
};
export type QualityAssessment = {
    llmNoveltyActionable: number;
    llmVerdict: "yes" | "no";
    emotionalReadiness: number;
    nonObviousness: number;
    composite: number;
    verdict: "deliver" | "park" | "discard";
};
export declare const QUALITY_PILLAR_WEIGHTS: {
    readonly llmNoveltyActionable: 0.6;
    readonly emotionalReadiness: 0.15;
    readonly nonObviousness: 0.25;
};
export type FragmentStoreFile = {
    version: 1;
    fragments: Fragment[];
};
export declare const FRAGMENT_TTL_MS: number;
export declare const FRAGMENT_HALF_LIFE_MS: number;
export declare function computeQualityVerdict(composite: number, llmVerdict?: "yes" | "no"): "deliver" | "park" | "discard";
export declare function computeComposite(assessment: Omit<QualityAssessment, "composite" | "verdict">): number;
export declare function isFragmentExpired(fragment: Fragment, now?: number): boolean;
export declare function createDefaultFragment(overrides: Partial<Fragment> & Pick<Fragment, "userId" | "kind" | "evidence" | "domains" | "structuralTag">): Fragment;
export declare function computeFragmentDecay(fragment: Fragment, now?: number): number;
