import { Position } from '../types/items'; type URLParamKey = 'googleMap' | 'directionMap' | 'staticStreetView' | 'streetView' | 'qrCodeMap' | 'qrCodeDirection'; interface URLParams { address?: string | undefined; size?: Partial; key: URLParamKey; } export declare function copyObject(obj: T): T; export declare function isAddressBoxPlaceholderVisibleInCanvas(addressBox?: { visible?: boolean; isAddressBoxPlaceholderVisibleInCanvas?: boolean; }): boolean; export declare function getAddressBoxWidthIn(size?: { w?: number; h?: number; }, addressBox?: { width?: number; } & Record): number; export declare function getURL({ address, size, key }: URLParams): string; export declare function capitalize(s: string): string; /** Pulls the raw URL out of a CSS `url(...)` background-image value. */ export declare function extractUrl(bgImage?: string | null): string | null; /** * Turns the stored background-size / background-position into valid CSS to emit verbatim. * New crops store "Npx Npx" (already valid). Imported templates carry `center`/`calc(...)`/keywords * (also valid) → passed through untouched. Only a legacy in-memory bare "x y" center-offset pair * (never valid CSS) is converted to the `calc(50% ± px)` form for backward compatibility. */ export declare function toBackgroundCss(backgroundSize?: string | null, backgroundPosition?: string | null): { size: string; position: string; }; /** * Derives the crop rectangle (image box, in canvas-local px, top-left origin) from the current * background state. Handles the literal "Npx Npx" form as well as legacy keyword sizes * (cover/contain/auto) and `center`/`calc(...)`/bare-offset positions. */ export declare function initCropRect(state: { backgroundSize?: string | null; backgroundPosition?: string | null; }, frame: { w: number; h: number; }, natural?: { w: number; h: number; }): { posX: number; posY: number; imgW: number; imgH: number; }; export {};