import { Usage } from '../usage';
export type UsageRecorder = (usage: Usage) => void;
export declare function setRunnerParentUsageRecorder(runner: object, recorder: UsageRecorder | undefined): void;
export declare function getRunnerParentUsageRecorder(runner: object): UsageRecorder | undefined;
export declare function setRunStateUsageRecorder(state: object, recorder: UsageRecorder): void;
export declare function getRunStateUsageRecorder(state: object): UsageRecorder | undefined;
export declare function setToolUsageRecorder(details: object, recorder: UsageRecorder | undefined): void;
export declare function getToolUsageRecorder(details: unknown): UsageRecorder | undefined;
export declare function recordToolUsage(details: unknown, usage: Usage): void;
export declare function createModelFailureUsageScope<T extends {
    _internal?: object;
}>(request: T, recorder: UsageRecorder): {
    request: T;
    close: () => void;
};
export declare function reportModelFailureUsage(request: object, error: unknown, usage: Usage): void;
export declare function attachModelFailureUsage(error: unknown, usage: Usage): void;
export declare function consumeModelFailureUsage(error: unknown): Usage | undefined;
