import { type ReactNode } from "react"; export type LogoTileSize = "sm" | "md" | "lg"; export type LogoTileTone = "neutral" | "brand" | "danger"; export declare function LogoTileSizeProvider({ size, children, }: { size: LogoTileSize; children: ReactNode; }): import("react").JSX.Element; /** The tile size a container asked for, or null outside one. */ export declare function useLogoTileSize(): LogoTileSize | null; /** First letter or digit of a name, uppercased. "GitHub automation" becomes "G". */ export declare function logoMonogram(name: string | undefined): string; export interface LogoTileProps { /** 40, 32 or 24px. Defaults to the container's size (list rows set it), else 40px. */ size?: LogoTileSize | undefined; /** A brand logo. Missing or broken logos fall back to the monogram. */ src?: string | null | undefined; /** * "cover" (default) fills the tile, for square app icons that carry their own * background. "contain" pads a transparent mark on the tile's surface. */ fit?: "cover" | "contain" | undefined; /** What the tile stands for. Used for the monogram and the optional label. */ name?: string | undefined; /** One or two letters. Defaults to the first letter of `name`. */ monogram?: string | undefined; /** A lucide glyph for things that are not brands. Takes precedence over the monogram. */ icon?: ReactNode | undefined; /** Glyph color. Neutral by default; brand and danger are for empty states and alerts. */ tone?: LogoTileTone | undefined; /** * Accessible name. Omit when the tile sits next to a visible name (the usual * case) so screen readers don't hear it twice. */ label?: string | undefined; className?: string | undefined; } export declare function LogoTile({ size: sizeProp, src, fit, name, monogram, icon, tone, label, className, }: LogoTileProps): import("react").JSX.Element;