import type { VisibilityLevelOption } from "./visibilityLevels.js";
/** Color treatment key shared by every visibility surface. */
export type VisibilityTone = VisibilityLevelOption["tone"];
/** Base classes for the visibility chip (badge + selector trigger). */
export declare const VISIBILITY_CHIP_CLASS = "inline-flex shrink-0 items-center gap-1 rounded-full bg-muted px-2 py-0.5 text-[10px] font-medium text-muted-foreground";
/** Props for {@link VisibilityOptionRow}. */
export interface VisibilityOptionRowProps {
    /** The level this row represents. */
    readonly option: VisibilityLevelOption;
    /** Whether this row is the resource's current visibility. */
    readonly isSelected: boolean;
    /**
     * ARIA role for the row. `"option"` inside the popover listbox,
     * `"radio"` inside the create-mode radiogroup — the matching selection
     * attribute (`aria-selected` / `aria-checked`) is applied automatically.
     */
    readonly role: "option" | "radio";
    /** Visually highlighted by keyboard/pointer navigation (popover only). */
    readonly isHighlighted?: boolean;
    /** Disables interaction (e.g. while a change is in flight). */
    readonly disabled?: boolean;
    /** Roving-tabindex value; the focused row is `0`, the rest `-1`. */
    readonly tabIndex?: number;
    /** Fires when the row is activated (click / Enter / Space). */
    readonly onSelect: () => void;
    /** Pointer hover, used to sync the keyboard highlight. */
    readonly onMouseEnter?: () => void;
    /** Keydown handler owned by the parent for roving focus. */
    readonly onKeyDown?: (e: React.KeyboardEvent<HTMLButtonElement>) => void;
}
/**
 * A single visibility level rendered as a left-aligned row: tone icon,
 * label, one-line description, and a check when current. Shared by the
 * {@link VisibilitySelector} popover and its create-mode inline list so
 * option presentation has exactly one source.
 */
export declare const VisibilityOptionRow: import("react").ForwardRefExoticComponent<VisibilityOptionRowProps & import("react").RefAttributes<HTMLButtonElement>>;
/** Selected-segment / active-tone treatment (also used by the inline confirm). */
export declare const SELECTED_STYLES: Record<VisibilityTone, string>;
/** Inline-confirm (escalation prompt) treatment, keyed by tone. */
export declare const PROMPT_STYLES: Record<VisibilityTone, {
    container: string;
    text: string;
    confirm: string;
    cancel: string;
}>;
/** Icon for a visibility tone; shared by the row, badge, and trigger. */
export declare function VisibilityIcon({ tone, className, }: {
    readonly tone: VisibilityTone;
    readonly className?: string;
}): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=VisibilityOptionRow.d.ts.map