import { type ReactNode } from "react"; import type { MessageMetadata, MessageMarkupSchema, MessageMarkupTag, MessagePart } from "@inlang/paraglide-js"; export type MessageOptions = { locale?: string; }; export type MessageLike, TOptions extends MessageOptions = MessageOptions, TMarkup extends MessageMarkupSchema = MessageMarkupSchema> = ((inputs: TInputs, options?: TOptions) => string) & { parts?: (inputs: TInputs, options?: TOptions) => MessagePart[]; } & MessageMetadata; type MessageMetadataOf> = TMessage extends MessageMetadata ? { inputs: TInputs; options: TOptions; markup: TMarkup; } : never; type MessageInputs> = MessageMetadataOf extends { inputs: infer TInputs; } ? TInputs : Parameters extends [infer TInputs, ...unknown[]] ? TInputs : Record; type SignatureOptions> = Parameters extends [unknown, infer TOptions, ...unknown[]] ? TOptions : MessageOptions; type NormalizeOptions = [TOptions] extends [undefined] ? MessageOptions : NonNullable extends MessageOptions ? NonNullable : MessageOptions; type MessageRuntimeOptions> = NormalizeOptions extends { options: infer TOptions; } ? TOptions : SignatureOptions>; type MessageMarkup> = MessageMetadataOf extends { markup: infer TMarkup; } ? TMarkup extends MessageMarkupSchema ? TMarkup : MessageMarkupSchema : MessageMarkupSchema; type NoInfer = [T][T extends any ? 0 : never]; export type MarkupRendererProps = { name: TName; children?: ReactNode; inputs: TInputs; messageOptions?: TOptions; options: TTag["options"]; attributes: TTag["attributes"]; }; export type MarkupRenderer = (props: MarkupRendererProps) => ReactNode; type MarkupRenderersForSchema = { [TName in keyof TMarkup & string]: MarkupRenderer; }; type MessageInputsProp = keyof TInputs extends never ? { inputs?: TInputs; } : { inputs: TInputs; }; type MessageBaseProps> = { message: TMessage; options?: MessageRuntimeOptions; } & MessageInputsProp>; type MessageMarkupProps> = keyof MessageMarkup extends never ? { markup?: never; } : { markup: MarkupRenderersForSchema, MessageRuntimeOptions, MessageMarkup>; }; export type MessageProps> = MessageBaseProps & MessageMarkupProps; /** * React adapter for Paraglide messages with markup. * * Uses `message.parts()` when available and falls back to `message()` for plain * messages without markup. */ export declare function ParaglideMessage>(props: MessageProps> & { message: TMessage; }): ReactNode; export {}; //# sourceMappingURL=message.d.ts.map