/**
 * fusion-trace-event.v1 emitter for the Cursorkit bridge.
 *
 * Self-contained (no @warrant dependency) mirror of the shared fusion-trace
 * contract so the Cursor edge can appear on the same observable session as the
 * gateway run. Emission is a no-op unless FUSION_TRACE_URL or FUSION_TRACE_DIR
 * is set, so it never affects normal bridge operation.
 */
export declare const TRACE_ID_HEADER = "x-fusion-trace-id";
export declare const TRACE_SPAN_HEADER = "x-fusion-span-id";
export declare const TRACE_PARENT_SPAN_HEADER = "x-fusion-parent-span-id";
export declare const TRACE_CANDIDATE_HEADER = "x-fusion-candidate-id";
declare const FUSION_TRACE_EVENT_SCHEMA = "fusion-trace-event.v1";
export type CursorTraceEventType = "session.started" | "session.finished" | "model.call.started" | "model.call.finished" | "cursor.route" | "log";
export interface CursorTraceEvent {
    schema: typeof FUSION_TRACE_EVENT_SCHEMA;
    schema_version: string;
    trace_id: string;
    span_id: string;
    parent_span_id?: string;
    seq: number;
    ts: number;
    component: "cursor-bridge";
    event_type: CursorTraceEventType;
    model_id?: string;
    payload?: Record<string, unknown>;
}
export interface EmitInput {
    event_type: CursorTraceEventType;
    traceId?: string;
    spanId?: string;
    parentSpanId?: string;
    modelId?: string;
    payload?: Record<string, unknown>;
}
export declare function newTraceId(): string;
export declare function newSpanId(): string;
export declare function emitTrace(input: EmitInput): void;
export {};
