/**
 * Logo shape classification.
 *
 * Pure, dimension-based classification used to (a) pick the right rendering
 * slot for an uploaded asset and (b) surface non-blocking warnings when an
 * asset is uploaded into a role it doesn't suit (e.g. a square mark dropped
 * into the full-width "Primary Logo" slot). We NEVER stretch or crop — these
 * are advisory only; rendering always uses object-fit: contain.
 */
import type { BrandAssetRole, LogoShape } from './types.js';
/**
 * Classify a logo by aspect ratio (width / height):
 *   - square:     0.8 ≤ ratio ≤ 1.25  (marks, favicons, app icons)
 *   - horizontal: ratio > 1.8         (headers, full sidebar)
 *   - vertical:   ratio < 0.8         (rarely fits headers/sidebars)
 *   - neutral:    everything in between
 *   - unknown:    missing/invalid dimensions
 */
export declare function classifyLogoShape(width: number | null | undefined, height: number | null | undefined): LogoShape;
/**
 * Advisory warning when an asset's shape doesn't suit its role. Returns null
 * when the shape is fine (or unknown — we don't nag about SVGs without
 * intrinsic dimensions).
 */
export declare function logoShapeWarning(role: BrandAssetRole, shape: LogoShape): string | null;
//# sourceMappingURL=logo-shape.d.ts.map