import "./record_header.css"; import type * as React from "react"; import { type ReactNode } from "react"; import { useRender } from "@base-ui/react/use-render"; import { type LinkValueImage } from "./link_value"; import { type StyleProps } from "./style_props"; export interface RecordHeaderMenuItem { key: string; label: string; danger?: boolean; /** Why it cannot run now; present, the item is offered disabled with these words. */ disabled?: string; onPress: () => void; } export interface RecordHeaderLabels { /** The ⋯'s accessible name. */ more: string; /** The ✎'s accessible name. */ edit: string; /** Closes the head's controls. */ done: string; /** The mark's press while the record holds no picture. */ addImage: string; /** The mark's press while it holds one. */ changeImage: string; /** The noun the description's disclosure shows and hides. */ whole: string; } export interface RecordHeaderProps extends StyleProps { /** Its mark at a heading's rung: someone's face, a thing's picture — a document its tile — or, held by none, the * dashed tile of the picture not held (`LinkValueImage`). */ image?: LinkValueImage; /** Present, the mark is the picture's place: pressed, it opens the file picker on images and videos, and * the file picked is the caller's to store — added while `image.src` is absent, put in the held one's place * when present. */ onPickImage?: (files: File[]) => void; /** A picked picture is on its way: the mark keeps what it shows under a spinner, and the press waits. */ imageUploading?: boolean; /** Stands alone on its line: never a badge or a verb beside it. */ title: ReactNode; /** The status badge, or the select a person moves it with — first on the line under the title. */ status?: ReactNode; /** Read after the status on that line, `·` between. */ subtitle?: readonly ReactNode[]; /** What the record is about — a plan's brief, a customer's note: read under the line, its first two lines at * rest with a disclosure only where it runs longer. Written from the ✎ with the head's other fields. */ description?: ReactNode; /** At the right: a metric, and under it a deadline — each child one reading. On a phone they share one * line under the status, from the left. */ figure?: ReactNode; /** The record's lead measure — a figure read against its bound, with its pass mark and how long is * left — across the head under the title, where a meter is read rather than glimpsed. */ band?: ReactNode; /** What corrects or removes the whole record, behind the ⋯, destructive last. The head draws no act as a * button: every act stands at the foot of the section it works in. */ menu?: readonly RecordHeaderMenuItem[]; /** The head's own fields as their controls. A ✎ beside the ⋯ says at rest that they change, and opens * them under the head: read in its line they are the record's identity, so they are never drawn twice. */ edit?: ReactNode; labels?: Partial; testID?: string; ref?: React.Ref; render?: useRender.RenderProp; } /** * WHO THIS RECORD IS — its picture, its title alone on the first line, and under it the status then the * line that qualifies it; the one figure and the ✎ ⋯ at the right. One anatomy on a page and in a drawer; * on a phone the ✎ ⋯ keep the title's line and the figure takes a line of its own under the status. */ export declare function RecordHeader(props: RecordHeaderProps): React.ReactElement>;