export declare const artifactTypes: readonly ["result", "markdown", "table", "progress", "image", "rich", "unknown"];
export type ArtifactType = typeof artifactTypes[number];
export declare const artifactTypeIconMap: {
    readonly default: "Artifact";
    readonly markdown: "ArtifactMarkdown";
    readonly table: "ArtifactTable";
    readonly result: "ArtifactResult";
    readonly progress: "ArtifactProgress";
    readonly image: "ArtifactImage";
    readonly rich: "Artifact";
    readonly unknown: "Artifact";
};
export type ResultArtifactData = Record<string, unknown>;
export type ProgressArtifactData = number;
export type MarkdownArtifactData = string;
export type TableArtifactData = string;
export type ImageArtifactData = string;
export type RichArtifactData = {
    html: string;
    sandbox?: string[];
    csp?: string;
};
export type UnknownArtifactData = unknown;
export type ArtifactData = ResultArtifactData | MarkdownArtifactData | TableArtifactData | ProgressArtifactData | ImageArtifactData | RichArtifactData | UnknownArtifactData;
export type ArtifactMetadata = Record<string, string>;
export interface IArtifact {
    id: string;
    created: Date;
    updated: Date;
    key: string | null;
    type: ArtifactType;
    description: string | null;
    data: ArtifactData;
    metadata: ArtifactMetadata;
    flowRunId: string | null;
    taskRunId: string | null;
}
export type ResultArtifact = IArtifact & {
    type: 'result';
    data: ResultArtifactData;
};
export type MarkdownArtifact = IArtifact & {
    type: 'markdown';
    data: MarkdownArtifactData;
};
export type TableArtifact = IArtifact & {
    type: 'table';
    data: TableArtifactData;
};
export type ProgressArtifact = IArtifact & {
    type: 'progress';
    data: ProgressArtifactData;
};
export type ImageArtifact = IArtifact & {
    type: 'image';
    data: ImageArtifactData;
};
export type RichArtifact = IArtifact & {
    type: 'rich';
    data: RichArtifactData;
};
export type UnknownArtifact = IArtifact & {
    type: 'unknown';
    data: unknown;
};
export declare class Artifact implements IArtifact {
    readonly id: string;
    readonly key: string | null;
    readonly kind = "artifact";
    readonly flowRunId: string | null;
    readonly taskRunId: string | null;
    readonly created: Date;
    readonly updated: Date;
    type: ArtifactType;
    description: string | null;
    data: ArtifactData;
    metadata: ArtifactMetadata;
    constructor(artifact: IArtifact);
}
