import type { AttributionAxisTag, AttributionPrimitive, AttributionProjection, ComputeAxisItem, DataAxisItem, GovernanceAxisEntry, ProtocolAxisItem } from './types.js';
/** Extract a single axis projection from a primitive. §2.2. The projection
 *  carries a copy of the axis content (no deep clone — callers treating
 *  projections as transport should serialize immediately) plus the two-hop
 *  sibling path to reconstruct the root. */
export declare function projectAttribution(primitive: AttributionPrimitive, axis: AttributionAxisTag): AttributionProjection;
/** Convenience: extract all four projections in one call. Useful when an
 *  issuer wants to emit projections to four independent settlement queues
 *  in parallel. */
export declare function projectAllAxes(primitive: AttributionPrimitive): {
    D: AttributionProjection;
    P: AttributionProjection;
    G: AttributionProjection;
    C: AttributionProjection;
};
/** Type-narrowing helpers so callers can pull a projection's axis_data with
 *  the right shape. Throws if the tag doesn't match the expected axis.
 *  (Verification happens separately in verify.ts — these helpers only do
 *  runtime-tag dispatch, no signature checking.) */
export declare function projectionDataAsD(p: AttributionProjection): DataAxisItem[];
export declare function projectionDataAsP(p: AttributionProjection): ProtocolAxisItem[];
export declare function projectionDataAsG(p: AttributionProjection): GovernanceAxisEntry[];
export declare function projectionDataAsC(p: AttributionProjection): ComputeAxisItem[];
//# sourceMappingURL=project.d.ts.map