import { BasePromptElementProps, PromptElement, Raw } from '@vscode/prompt-tsx';
type StatefulMarkerWithModel = {
    modelId: string;
    marker: string;
};
export interface IStatefulMarkerContainerProps extends BasePromptElementProps {
    statefulMarker: StatefulMarkerWithModel;
}
/**
 * Helper to store the statefulMarker as part of a prompt-tsx assistant message
 */
export declare class StatefulMarkerContainer extends PromptElement<IStatefulMarkerContainerProps> {
    render(): any;
}
/**
 * Check whether an opaque content part is a StatefulMarkerContainer and retrieve the stateful marker if so
 */
export declare function rawPartAsStatefulMarker(part: Raw.ChatCompletionContentPartOpaque): StatefulMarkerWithModel | undefined;
export declare function encodeStatefulMarker(modelId: string, marker: string): Uint8Array;
export declare function decodeStatefulMarker(data: Uint8Array): StatefulMarkerWithModel;
/** Gets stateful markers from the messages, from the most to least recent */
export declare function getAllStatefulMarkersAndIndicies(messages: readonly Raw.ChatMessage[]): Generator<{
    statefulMarker: StatefulMarkerWithModel;
    index: number;
}, undefined, unknown>;
export declare function getStatefulMarkerAndIndex(modelId: string, messages: readonly Raw.ChatMessage[]): {
    statefulMarker: string;
    index: number;
} | undefined;
/**
 * Finds the message index of a specific stateful marker value in the message history.
 * Returns the index if found, undefined otherwise.
 */
export declare function getIndexOfStatefulMarker(markerValue: string, messages: readonly Raw.ChatMessage[]): number | undefined;
export {};
//# sourceMappingURL=statefulMarkerContainer.d.ts.map