import type { JSONObject } from 'tiny-types';
import { TinyType } from 'tiny-types';
export interface SerialisedArtifact extends JSONObject {
    type: string;
    base64EncodedValue: string;
}
export type ArtifactType = new (base64EncodedValue: string) => Artifact;
export declare abstract class Artifact extends TinyType {
    readonly base64EncodedValue: string;
    static fromJSON(o: SerialisedArtifact): Artifact;
    static ofType(name: string): ArtifactType | undefined;
    constructor(base64EncodedValue: string);
    abstract map<T>(fn: (decodedValue: any) => T): T;
    toJSON(): SerialisedArtifact;
}
//# sourceMappingURL=Artifact.d.ts.map