/**
 * URL encoding for OG image options (Cloudinary/IPX style)
 *
 * Format: /_og/s/w_1200,h_600,c_NuxtSeo,title_Hello+World.png
 *
 * When the encoded path exceeds MAX_PATH_LENGTH (200 chars), falls back to hash mode:
 * Format: /_og/s/o_<hash>.png
 *
 * - Known OgImageOptions use short aliases (w, h, c, etc.)
 * - Component props are encoded directly (title_Hello)
 * - Complex objects are base64 encoded JSON
 */
/**
 * Generate a deterministic hash from options object
 * Excludes _path so images with same options can be cached across pages
 * Optionally includes componentHash and version for cache busting
 */
export declare function hashOgImageOptions(options: Record<string, any>, componentHash?: string, version?: string): string;
/**
 * Encode OG image options into a URL path segment
 * @param options - The options to encode
 * @param defaults - Optional defaults to skip (values matching defaults won't be encoded)
 * @example encodeOgImageParams({ width: 1200, props: { title: 'Hello' } })
 * // Returns: "w_1200,title_Hello"
 */
export declare function encodeOgImageParams(options: Record<string, any>, defaults?: Record<string, any>): string;
/**
 * Decode URL path segment back into OG image options
 * @example decodeOgImageParams("w_1200,title_Hello")
 * // Returns: { width: 1200, props: { title: 'Hello' } }
 */
export declare function decodeOgImageParams(encoded: string): Record<string, any>;
export interface BuildOgImageUrlResult {
    url: string;
    hash?: string;
}
/**
 * Build full OG image URL
 *
 * When encoded params exceed MAX_PATH_LENGTH, falls back to hash mode:
 * - Returns short path: /_og/s/o_<hash>.png
 * - Returns hash in result for cache storage
 *
 * @param options - The options to encode
 * @param extension - Image extension (png, jpeg, etc.)
 * @param isStatic - Whether this is a static/prerendered image
 * @param defaults - Optional defaults to skip from URL (keeps URLs shorter)
 * @example buildOgImageUrl({ width: 1200, props: { title: 'Hello' } }, 'png', true)
 * // Returns: { url: "/_og/s/w_1200,title_Hello.png" }
 */
export declare function buildOgImageUrl(options: Record<string, any>, extension?: string, isStatic?: boolean, defaults?: Record<string, any>): BuildOgImageUrlResult;
/**
 * Parse OG image URL back into options
 * @example parseOgImageUrl("/_og/s/w_1200,h_600.png")
 * // Returns: { options: { width: 1200, height: 600 }, extension: 'png', isStatic: true, hash: undefined }
 * @example parseOgImageUrl("/_og/s/o_abc123.png")
 * // Returns: { options: {}, extension: 'png', isStatic: true, hash: 'abc123' }
 */
export declare function parseOgImageUrl(url: string): {
    options: Record<string, any>;
    extension: string;
    isStatic: boolean;
    hash?: string;
};
/**
 * Extract the encoded segment from the full path, handling the case where
 * %2F in prop values has been decoded to / by intermediaries (#522).
 * Uses the full catch-all match after /_og/d/ (or /_og/s/) instead of
 * only the last path segment.
 */
export declare function extractEncodedSegment(path: string, extension: string): string;
