import { type ArgsType } from "@agyemanjp/standard"; import { type UIElement } from "../../"; import type { ComponentArgs, Component } from "../../common"; import type { HtmlProps, LayoutProps } from "../common"; import type { CSSProperties } from "../../html"; export declare function View(props: ComponentArgs>): UIElement; export type ViewProps = LayoutProps & { sourceData: Iterable; layout?: Component; itemTemplate?: Component<{ value: T; index: number; style?: CSSProperties; children?: never; }>; itemStyle?: CSSProperties; style?: CSSProperties; children?: never; }; export declare function ViewSelectable(props: ArgsType>>[0], setProps: ArgsType>>[1]): UIElement; export type ViewSelectableProps = LayoutProps & { sourceData: Iterable; selectedIndex?: number; onSelectionChanged?: (index: number) => void; layout?: Component; itemTemplate?: Component<{ value: T; selected: boolean; onClick?: HtmlProps["onClick"]; style?: CSSProperties; children?: never; }>; itemStyle?: CSSProperties; selectedItemStyle?: CSSProperties; style?: CSSProperties; children?: never; }; export declare const defaultViewItemTemplates: { forAny: (args: { value: T; onClick?: HtmlProps["onClick"]; style?: CSSProperties; selected: boolean; }) => UIElement; forJSX: (args: { value: UIElement; onClick?: HtmlProps["onClick"]; style?: CSSProperties; selected: boolean; }) => UIElement; };