/** * Content Item Fixture Generator * * Provides type-safe helpers for creating ContentItem objects in tests. */ import type { ContentItem } from '@wavespec/types'; /** * Content type discriminator */ export type ContentType = 'text' | 'image' | 'resource'; /** * Creates a ContentItem with type-specific defaults * * Generates a complete ContentItem object with sensible defaults based on the content type. * Override any field via the overrides parameter. * * @param type - Content type (text, image, resource) * @param overrides - Partial ContentItem to override defaults * @returns Complete ContentItem object * * @example * ```typescript * // Text content * const text = createContentItem('text', { * text: 'Hello, world!', * mimeType: 'text/plain' * }); * * // Image content with base64 data * const image = createContentItem('image', { * data: 'iVBORw0KGgoAAAANSUhEUgA...', * mimeType: 'image/png' * }); * * // Resource content * const resource = createContentItem('resource', { * data: 'eyJuYW1lIjoiQWxpY2UifQ==', * mimeType: 'application/json' * }); * ``` */ export declare function createContentItem(type: ContentType, overrides?: Partial): ContentItem; /** * Helper: Creates a text ContentItem * * @param text - Text content * @param mimeType - MIME type (default: "text/plain") * @returns Text ContentItem * * @example * ```typescript * const text = text('Hello, world!'); * const markdown = text('# Title', 'text/markdown'); * const json = text('{"key": "value"}', 'application/json'); * ``` */ export declare function text(text: string, mimeType?: string): ContentItem; /** * Helper: Creates an image ContentItem * * @param data - Base64-encoded image data * @param mimeType - MIME type (default: "image/png") * @returns Image ContentItem * * @example * ```typescript * const png = image('iVBORw0KGgoAAAANSUhEUgA...'); * const jpg = image('data...', 'image/jpeg'); * ``` */ export declare function image(data: string, mimeType?: string): ContentItem; /** * Helper: Creates a resource ContentItem * * @param data - Base64-encoded resource data * @param mimeType - MIME type (default: "application/octet-stream") * @returns Resource ContentItem * * @example * ```typescript * const binary = resource('SGVsbG8gV29ybGQh'); // "Hello World!" in base64 * const json = resource('eyJrZXkiOiJ2YWx1ZSJ9', 'application/json'); * ``` */ export declare function resource(data: string, mimeType?: string): ContentItem; /** * Helper: Creates a JSON text ContentItem from an object * * @param obj - Object to serialize as JSON * @returns Text ContentItem with JSON MIME type * * @example * ```typescript * const jsonContent = json({ name: 'Alice', age: 30 }); * // Returns: { type: 'text', text: '{"name":"Alice","age":30}', mimeType: 'application/json' } * ``` */ export declare function json(obj: unknown): ContentItem; //# sourceMappingURL=content-item.d.ts.map