/** SDK-owned platform module. This implementation is maintained in goodvibes-sdk. */
export type ArtifactKind = 'file' | 'image' | 'audio' | 'video' | 'document' | 'archive' | 'data';
export declare const ARTIFACT_ACQUISITION_MODES: readonly ["inline-data", "local-path", "remote-fetch", "unknown"];
export declare const ARTIFACT_FETCH_MODES: readonly ["not-applicable", "public-only", "allow-private-hosts", "unknown"];
export type ArtifactAcquisitionMode = typeof ARTIFACT_ACQUISITION_MODES[number];
export type ArtifactFetchMode = typeof ARTIFACT_FETCH_MODES[number];
export interface ArtifactDescriptor {
    readonly id: string;
    readonly kind: ArtifactKind;
    readonly mimeType: string;
    readonly filename?: string | undefined;
    readonly sizeBytes: number;
    readonly sha256: string;
    readonly createdAt: number;
    readonly expiresAt?: number | undefined;
    readonly sourceUri?: string | undefined;
    readonly acquisitionMode: ArtifactAcquisitionMode;
    readonly fetchMode: ArtifactFetchMode;
    readonly metadata: Record<string, unknown>;
}
export interface ArtifactRecord extends ArtifactDescriptor {
    readonly contentPath: string;
    readonly metadataPath: string;
}
export interface ArtifactReference {
    readonly artifactId: string;
    readonly label?: string | undefined;
    readonly metadata?: Record<string, unknown> | undefined;
}
export interface ArtifactAttachment extends ArtifactDescriptor {
    readonly artifactId: string;
    readonly label?: string | undefined;
    readonly contentPath: string;
    readonly contentUrl?: string | undefined;
    readonly dataBase64?: string | undefined;
}
export interface ArtifactCreateInput {
    readonly kind?: ArtifactKind | undefined;
    readonly mimeType?: string | undefined;
    readonly filename?: string | undefined;
    readonly dataBase64?: string | undefined;
    readonly text?: string | undefined;
    readonly path?: string | undefined;
    readonly uri?: string | undefined;
    readonly sourceUri?: string | undefined;
    readonly retentionMs?: number | undefined;
    readonly acquisitionMode?: ArtifactAcquisitionMode | undefined;
    readonly fetchMode?: ArtifactFetchMode | undefined;
    readonly allowPrivateHosts?: boolean | undefined;
    readonly metadata?: Record<string, unknown> | undefined;
}
export interface ArtifactStreamCreateInput {
    readonly stream: ReadableStream<Uint8Array> | AsyncIterable<Uint8Array | Buffer | string> | Iterable<Uint8Array | Buffer | string>;
    readonly kind?: ArtifactKind | undefined;
    readonly mimeType?: string | undefined;
    readonly filename?: string | undefined;
    readonly sourceUri?: string | undefined;
    readonly sizeBytes?: number | undefined;
    readonly retentionMs?: number | undefined;
    readonly acquisitionMode?: ArtifactAcquisitionMode | undefined;
    readonly fetchMode?: ArtifactFetchMode | undefined;
    readonly metadata?: Record<string, unknown> | undefined;
}
export declare const EXTENSION_MIME_TYPES: Record<string, string>;
export declare function guessMimeType(filename?: string): string;
export declare function inferArtifactKind(mimeType: string, filename?: string): ArtifactKind;
export declare function sanitizeArtifactFilename(filename: string | undefined, fallback?: string): string;
//# sourceMappingURL=types.d.ts.map