import { z } from 'zod';
import { ValidationToolResult } from '../../../shopify-dev-tools/src/types';
export declare const ARTIFACT_TRACKING_INSTRUCTIONS = "\n\n    It returns a comprehensive validation result with details for each code block explaining why it was valid or invalid.\n    This detail is provided so LLMs know how to modify code snippets to remove errors.\n    It also returns an artifact ID and revision number for each code block. This is used to track the code block and its validation results. When validating an iteration of the same code block, use the same artifact ID and increment the revision number. Do not pass your own artifact ID to this tool, the tool will generate one for you.";
export interface ArtifactInfo {
    artifactId: string;
    revision: number;
}
export interface CodeWithArtifact {
    content: string;
    artifactId?: string;
    revision?: number;
}
export interface FileWithArtifact {
    path: string;
    artifactId?: string;
    revision?: number;
}
export declare const artifactFieldsSchema: {
    artifactId: z.ZodOptional<z.ZodString>;
    revision: z.ZodOptional<z.ZodNumber>;
};
export declare const codeWithArtifactSchema: z.ZodObject<{
    artifactId: z.ZodOptional<z.ZodString>;
    revision: z.ZodOptional<z.ZodNumber>;
    content: z.ZodString;
}, z.core.$strip>;
export declare const fileWithArtifactSchema: z.ZodObject<{
    artifactId: z.ZodOptional<z.ZodString>;
    revision: z.ZodOptional<z.ZodNumber>;
    path: z.ZodString;
}, z.core.$strip>;
export declare function extractArtifactsFromItems<T extends {
    artifactId?: string;
    revision?: number;
}>(items: T[]): ArtifactInfo[];
export declare function attachArtifactIds(responses: ValidationToolResult, artifacts: ArtifactInfo[]): ValidationToolResult;
//# sourceMappingURL=artifacts.d.ts.map