import { FlowRunLinkMetadata } from '../types.js';
type FlowRunLink = FlowRunLinkMetadata;
/**
 * Valid HTML link target values as per HTML spec.
 */
export declare const VALID_LINK_TARGETS: Set<string>;
/**
 * Convert unknown value to trimmed string, or undefined if empty/invalid.
 */
export declare const toTrimmedString: (value: unknown) => string | undefined;
/**
 * Convert unknown value to optional boolean.
 * Supports string values like 'true', 'false', '1', '0', 'yes', 'no', 'on', 'off'.
 */
export declare const toOptionalBoolean: (value: unknown) => boolean | undefined;
/**
 * Migrates legacy v1 link format { href?, title? } to v2 schema.
 * If link already has version: 2, returns as-is.
 * Otherwise, creates v2 link with defaults for new fields.
 *
 * @param link - Link object to migrate
 * @returns Migrated v2 link
 */
export declare const migrateLegacyLink: (link: FlowRunLink) => FlowRunLink;
/**
 * Build FlowRunLink from ProseMirror mark attributes.
 * Sanitizes href and normalizes all link properties according to v2 schema.
 *
 * @param attrs - Mark attributes containing link properties
 * @returns FlowRunLink object, or null if no valid link properties found
 */
export declare const buildFlowRunLink: (attrs: Record<string, unknown>) => FlowRunLink | null;
export {};
//# sourceMappingURL=links.d.ts.map