import type { ChangeItem, ChangeRequest } from '../types/change-request-types';
export type ImageContent = {
    type: 'image';
    data: string;
    mimeType: string;
};
/**
 * Extract base64 images from comment/chat changes into separate MCP image
 * content items. Returns the changes with `images` stripped (replaced by
 * `imageCount`) and an array of image content items to append to the tool
 * response. All other fields on the change item — including the optional
 * `variantRequest` marker on comments — pass through untouched.
 */
export declare function extractImages(changes: ChangeItem[]): {
    changes: unknown[];
    imageContent: ImageContent[];
};
/**
 * Returns true when an intent's pending batch is a single CommentChangeItem
 * carrying `variantRequest`. Such batches are routed through the variants
 * lifecycle instead of `beginApplyingRun`.
 */
export declare function isSingleVariantRequestBatch(intent: ChangeRequest): boolean;
/**
 * Returns true when a batch contains at least one item with `variantRequest`
 * but is NOT a clean single-item variant-request batch. UI gating should make
 * this unreachable; the server boundary still rejects defensively.
 */
export declare function isMixedVariantBatch(intent: ChangeRequest): boolean;
/** Returns true when a pending batch targets an HTML-only static preview. */
export declare function isStaticPreviewRefineBatch(intent: ChangeRequest): boolean;
//# sourceMappingURL=changeBatchClassification.d.ts.map