type LcmMessagePartKind = "text" | "tool_call" | "tool_result" | "patch" | "file_read" | "file_write" | "step_start" | "step_finish" | "snapshot" | "retry";
type MessagePartSourceFormat = "openai" | "anthropic" | "openclaw" | "lossless-claw" | "remnic";
interface LcmMessagePartInput {
    ordinal?: number | null;
    kind: LcmMessagePartKind;
    payload: Record<string, unknown>;
    toolName?: string | null;
    tool_name?: string | null;
    filePath?: string | null;
    file_path?: string | null;
    createdAt?: string | null;
    created_at?: string | null;
}
interface LcmMessagePartRow extends LcmMessagePartInput {
    id: number;
    messageId: number;
    ordinal: number;
    payloadJson: string;
    createdAt: string;
}
interface ParseMessagePartsOptions {
    sourceFormat?: MessagePartSourceFormat;
    renderedContent?: string;
    allowRenderedFallback?: boolean;
}
declare function isLcmMessagePartKind(value: unknown): value is LcmMessagePartKind;
declare function parseMessageParts(input: unknown, options?: ParseMessagePartsOptions): LcmMessagePartInput[];
declare function normalizeExplicitParts(input: unknown): LcmMessagePartInput[];
declare function parseOpenAiMessageParts(input: unknown, _options?: ParseMessagePartsOptions): LcmMessagePartInput[];
declare function parseAnthropicMessageParts(input: unknown, _options?: ParseMessagePartsOptions): LcmMessagePartInput[];
declare function parseOpenClawMessageParts(input: unknown, options?: ParseMessagePartsOptions): LcmMessagePartInput[];
declare function partsFromRenderedText(text: string): LcmMessagePartInput[];

export { type LcmMessagePartInput as L, type MessagePartSourceFormat as M, type ParseMessagePartsOptions as P, type LcmMessagePartKind as a, type LcmMessagePartRow as b, parseMessageParts as c, parseOpenAiMessageParts as d, parseOpenClawMessageParts as e, partsFromRenderedText as f, isLcmMessagePartKind as i, normalizeExplicitParts as n, parseAnthropicMessageParts as p };
