// Auto-generated TypeScript type definitions
// This file is generated by SwiftBindGen - do not edit manually

import { IRNode, IRNodeChild, IRColorParams, FontStyle } from './IRSwiftUI';
import { Binding } from './SwiftUI';
import * as Enums from './IREnums.generated';
export interface AsyncImageOptions {
  scale?: number;
  url?: string | undefined;
  content?: IRNodeChild | IRNodeChild[];
  placeholder?: IRNodeChild | IRNodeChild[];
}
export declare function AsyncImage(children: IRNodeChild | IRNodeChild[]): IRNode;
export declare function AsyncImage(options?: AsyncImageOptions): IRNode;

export interface ButtonOptions {
  action?: () => void;
  role?: Enums.ButtonRole;
  systemImage?: string;
  title?: string;
  titleKey?: string;
  titleResource?: string;
  label?: IRNodeChild | IRNodeChild[];
}
export declare function Button(title: string, action?: () => void): IRNode;
export declare function Button(label: IRNodeChild[], action?: () => void): IRNode;
export declare function Button(action: () => void): IRNode;
export declare function Button(options: ButtonOptions): IRNode;

export declare function Capsule(style?: Enums.RoundedCornerStyle): IRNode;

export declare function Circle(): IRNode;

export interface ColorOptions {
  blue?: number;
  brightness?: number;
  bundle?: string | undefined;
  color?: IRColorParams | string;
  colorSpace?: Enums.Color_RGBColorSpace;
  green?: number;
  hue?: number;
  name?: string;
  opacity?: number;
  red?: number;
  saturation?: number;
  white?: number;
}
export declare function Color(name: string, opts?: Omit<ColorOptions, 'name'>): IRNode;
export declare function Color(opts: ColorOptions): IRNode;

export declare function ConcentricRectangle(): IRNode;

export declare function ContainerRelativeShape(): IRNode;

export interface ContentUnavailableViewOptions {
  image?: string;
  systemImage?: string;
  title?: string;
  actions?: IRNodeChild | IRNodeChild[];
  description?: string | IRNode | undefined | IRNodeChild | IRNodeChild[];
  label?: IRNodeChild | IRNodeChild[];
}
export declare function ContentUnavailableView(options?: ContentUnavailableViewOptions): IRNode;

export interface ControlGroupOptions {
  systemImage?: string;
  title?: string;
  titleKey?: string;
  titleResource?: string;
  content: IRNodeChild | IRNodeChild[];
  label?: IRNodeChild | IRNodeChild[];
}
export declare function ControlGroup(children: IRNodeChild | IRNodeChild[]): IRNode;
export declare function ControlGroup(options?: ControlGroupOptions): IRNode;

export interface DebugReplaceableViewOptions {
  erasing: IRNodeChild | IRNodeChild[];
}
export declare function DebugReplaceableView(opts?: DebugReplaceableViewOptions): IRNode;

export declare function DefaultDocumentGroupLaunchActions(): IRNode;

export declare function DefaultGlassEffectShape(): IRNode;

export interface DisclosureGroupOptions {
  isExpanded?: Binding<boolean>;
  titleKey?: string;
  titleResource?: string;
  content: IRNodeChild | IRNodeChild[];
  label?: string | IRNodeChild | IRNodeChild[];
}
export declare function DisclosureGroup(children: IRNodeChild | IRNodeChild[]): IRNode;
export declare function DisclosureGroup(options?: DisclosureGroupOptions): IRNode;

export declare function Divider(): IRNode;

export declare function EditButton(): IRNode;

export declare function Ellipse(): IRNode;

export declare function EmptyView(): IRNode;

export interface ForEachOptions {
  data?: { lowerBound: number; upperBound: number };
  sections?: IRNodeChild | IRNodeChild[];
  subviews?: IRNodeChild | IRNodeChild[];
}
export declare function ForEach(children: IRNodeChild[]): IRNode;
export declare function ForEach(options: ForEachOptions, children?: IRNodeChild[]): IRNode;

export declare function Form(children: IRNodeChild | IRNodeChild[]): IRNode;

export interface GaugeOptions {
  in?: { lowerBound: number; upperBound: number };
  value: number;
  currentValueLabel?: IRNodeChild | IRNodeChild[];
  label: IRNodeChild | IRNodeChild[];
  markedValueLabels?: IRNodeChild | IRNodeChild[];
  maximumValueLabel?: IRNodeChild | IRNodeChild[];
  minimumValueLabel?: IRNodeChild | IRNodeChild[];
}
export declare function Gauge(options?: GaugeOptions): IRNode;

export declare function GeometryReader(children: IRNodeChild | IRNodeChild[]): IRNode;

export interface GlassEffectContainerOptions {
  spacing?: number | undefined;
}
export declare function GlassEffectContainer(children: IRNodeChild[]): IRNode;
export declare function GlassEffectContainer(spacing: number | undefined, children?: IRNodeChild[]): IRNode;
export declare function GlassEffectContainer(options: GlassEffectContainerOptions, children?: IRNodeChild[]): IRNode;

export interface GridOptions {
  alignment?: Enums.Alignment;
  horizontalSpacing?: number | undefined;
  verticalSpacing?: number | undefined;
}
export declare function Grid(children: IRNodeChild[]): IRNode;
export declare function Grid(alignment: Enums.Alignment, children?: IRNodeChild[]): IRNode;
export declare function Grid(options: GridOptions, children?: IRNodeChild[]): IRNode;

export interface GridRowOptions {
  alignment?: Enums.VerticalAlignment | undefined;
}
export declare function GridRow(children: IRNodeChild[]): IRNode;
export declare function GridRow(alignment: Enums.VerticalAlignment | undefined, children?: IRNodeChild[]): IRNode;
export declare function GridRow(options: GridRowOptions, children?: IRNodeChild[]): IRNode;

export interface GroupBoxOptions {
  title?: string;
  titleKey?: string;
  titleResource?: string;
  content: IRNodeChild | IRNodeChild[];
  label?: IRNodeChild | IRNodeChild[] | IRNodeChild | IRNodeChild[];
}
export declare function GroupBox(children: IRNodeChild | IRNodeChild[]): IRNode;
export declare function GroupBox(options?: GroupBoxOptions): IRNode;

export declare function HSplitView(children: IRNodeChild | IRNodeChild[]): IRNode;

export interface HStackOptions {
  alignment?: Enums.VerticalAlignment;
  spacing?: number | undefined;
}
export declare function HStack(children: IRNodeChild[]): IRNode;
export declare function HStack(alignment: Enums.VerticalAlignment, children?: IRNodeChild[]): IRNode;
export declare function HStack(options: HStackOptions, children?: IRNodeChild[]): IRNode;

export declare function HelpLink(destination?: string): IRNode;

export interface ImageOptions {
  bundle?: string | undefined;
  decorative?: string;
  label?: string | IRNode;
  name?: string;
  systemName?: string;
  variableValue?: number | undefined;
}
export declare function Image(name: string, opts?: Omit<ImageOptions, 'name'>): IRNode;
export declare function Image(opts: ImageOptions): IRNode;

export interface LabelOptions {
  image?: string;
  systemImage?: string;
  titleKey?: string;
  titleResource?: string;
  icon?: IRNodeChild | IRNodeChild[];
  title?: string | IRNodeChild | IRNodeChild[];
}
export declare function Label(options?: LabelOptions): IRNode;

export interface LabeledContentOptions {
  title?: string;
  titleKey?: string;
  titleResource?: string;
  value?: string;
  content?: IRNodeChild | IRNodeChild[];
  label?: IRNodeChild | IRNodeChild[];
}
export declare function LabeledContent(children: IRNodeChild | IRNodeChild[]): IRNode;
export declare function LabeledContent(options?: LabeledContentOptions): IRNode;

export interface LazyHStackOptions {
  alignment?: Enums.VerticalAlignment;
  pinnedViews?: Enums.PinnedScrollableViews;
  spacing?: number | undefined;
}
export declare function LazyHStack(children: IRNodeChild[]): IRNode;
export declare function LazyHStack(alignment: Enums.VerticalAlignment, children?: IRNodeChild[]): IRNode;
export declare function LazyHStack(options: LazyHStackOptions, children?: IRNodeChild[]): IRNode;

export interface LazyVStackOptions {
  alignment?: Enums.HorizontalAlignment;
  pinnedViews?: Enums.PinnedScrollableViews;
  spacing?: number | undefined;
}
export declare function LazyVStack(children: IRNodeChild[]): IRNode;
export declare function LazyVStack(alignment: Enums.HorizontalAlignment, children?: IRNodeChild[]): IRNode;
export declare function LazyVStack(options: LazyVStackOptions, children?: IRNodeChild[]): IRNode;

export interface LinkOptions {
  destination: string;
  title?: string;
  titleKey?: string;
  titleResource?: string;
}
export declare function Link(children: IRNodeChild[]): IRNode;
export declare function Link(title: string, children?: IRNodeChild[]): IRNode;
export declare function Link(options: LinkOptions, children?: IRNodeChild[]): IRNode;

export interface ListOptions {
  data?: { lowerBound: number; upperBound: number };
  selection?: Binding<string>;
  content?: IRNodeChild | IRNodeChild[];
  rowContent?: IRNodeChild | IRNodeChild[];
}
export declare function List(children: IRNodeChild | IRNodeChild[]): IRNode;
export declare function List(options?: ListOptions): IRNode;

export interface MenuOptions {
  systemImage?: string;
  title?: string;
  titleKey?: string;
  titleResource?: string;
  content: IRNodeChild | IRNodeChild[];
  label?: IRNodeChild | IRNodeChild[];
}
export declare function Menu(children: IRNodeChild | IRNodeChild[]): IRNode;
export declare function Menu(options?: MenuOptions): IRNode;

export interface MenuButtonOptions {
  label?: IRNodeChild | IRNodeChild[];
  title?: string;
  titleKey?: string;
}
export declare function MenuButton(children: IRNodeChild[]): IRNode;
export declare function MenuButton(title: string, children?: IRNodeChild[]): IRNode;
export declare function MenuButton(options: MenuButtonOptions, children?: IRNodeChild[]): IRNode;

export interface NavigationLinkOptions {
  destinationName?: string;
  isActive?: Binding<boolean>;
  title?: string;
  titleKey?: string;
  titleResource?: string;
  value?: string | undefined;
  destination?: IRNodeChild | IRNodeChild[] | IRNodeChild | IRNodeChild[];
  label?: IRNodeChild | IRNodeChild[];
}
export declare function NavigationLink(options?: NavigationLinkOptions): IRNode;

export interface NavigationSplitViewOptions {
  content?: IRNodeChild | IRNodeChild[];
  detail: IRNodeChild | IRNodeChild[];
  sidebar: IRNodeChild | IRNodeChild[];
}
export declare function NavigationSplitView(children: IRNodeChild | IRNodeChild[]): IRNode;
export declare function NavigationSplitView(options?: NavigationSplitViewOptions): IRNode;

export interface NavigationStackOptions {
  root: IRNodeChild | IRNodeChild[];
}
export declare function NavigationStack(options: NavigationStackOptions): IRNode;

export declare function NavigationView(children: IRNodeChild | IRNodeChild[]): IRNode;

export declare function Path(string?: string): IRNode;

export interface ProgressViewOptions {
  countsDown?: boolean;
  timerInterval?: { lowerBound: number; upperBound: number };
  title?: string;
  titleKey?: string;
  titleResource?: string;
  total?: number;
  value?: number | undefined;
  currentValueLabel?: IRNodeChild | IRNodeChild[];
  label?: IRNodeChild | IRNodeChild[];
}
export declare function ProgressView(options?: ProgressViewOptions): IRNode;

export declare function Rectangle(): IRNode;

export declare function RenameButton(): IRNode;

export interface RoundedRectangleOptions {
  cornerRadius: number;
  style?: Enums.RoundedCornerStyle;
}
export declare function RoundedRectangle(cornerRadius: number, opts?: Omit<RoundedRectangleOptions, 'cornerRadius'>): IRNode;
export declare function RoundedRectangle(opts: RoundedRectangleOptions): IRNode;

export interface ScrollViewOptions {
  axes?: Enums.Axis_Set;
  showsIndicators?: boolean;
}
export declare function ScrollView(children: IRNodeChild[]): IRNode;
export declare function ScrollView(axes: Enums.Axis_Set, children?: IRNodeChild[]): IRNode;
export declare function ScrollView(options: ScrollViewOptions, children?: IRNodeChild[]): IRNode;

export declare function ScrollViewReader(children: IRNodeChild | IRNodeChild[]): IRNode;

export interface SectionOptions {
  isExpanded?: Binding<boolean>;
  title?: string;
  titleKey?: string;
  titleResource?: string;
  content: IRNodeChild | IRNodeChild[];
  footer?: IRNodeChild | IRNodeChild[] | IRNodeChild | IRNodeChild[];
  header?: IRNodeChild | IRNodeChild[] | IRNodeChild | IRNodeChild[];
}
export declare function Section(children: IRNodeChild | IRNodeChild[]): IRNode;
export declare function Section(options?: SectionOptions): IRNode;

export interface SecureFieldOptions {
  onCommit?: () => void;
  prompt?: string | IRNode | undefined;
  text: Binding<string>;
  title?: string;
  titleKey?: string;
  titleResource?: string;
  label?: IRNodeChild | IRNodeChild[];
}
export declare function SecureField(title: string, text: any): IRNode;
export declare function SecureField(title: string, text: any, onCommit?: () => void): IRNode;
export declare function SecureField(options: SecureFieldOptions): IRNode;

export declare function SettingsLink(children: IRNodeChild | IRNodeChild[]): IRNode;

export interface ShareLinkOptions {
  item: string;
  message?: string | IRNode | undefined;
  subject?: string | IRNode | undefined;
  title?: string;
  titleKey?: string;
  titleResource?: string;
}
export declare function ShareLink(children: IRNodeChild[]): IRNode;
export declare function ShareLink(title: string, children?: IRNodeChild[]): IRNode;
export declare function ShareLink(options: ShareLinkOptions, children?: IRNodeChild[]): IRNode;

export interface SliderOptions {
  enabledBounds?: { lowerBound: number; upperBound: number } | undefined;
  in?: { lowerBound: number; upperBound: number };
  neutralValue?: number | undefined;
  onEditingChanged?: (p0: boolean) => void;
  step?: number;
  tick?: (p0: number) => number | undefined;
  value: Binding<number>;
  currentValueLabel?: IRNodeChild | IRNodeChild[];
  label?: IRNodeChild | IRNodeChild[];
  maximumValueLabel?: IRNodeChild | IRNodeChild[];
  minimumValueLabel?: IRNodeChild | IRNodeChild[];
}
export declare function Slider(options?: SliderOptions): IRNode;

export declare function Spacer(minLength?: number | undefined): IRNode;

export interface StepperOptions {
  onDecrement?: () => void | undefined;
  onEditingChanged?: (p0: boolean) => void;
  onIncrement?: () => void | undefined;
  title?: string;
  titleKey?: string;
  titleResource?: string;
}
export declare function Stepper(children: IRNodeChild[]): IRNode;
export declare function Stepper(title: string, children?: IRNodeChild[]): IRNode;
export declare function Stepper(options: StepperOptions, children?: IRNodeChild[]): IRNode;

export interface TabViewOptions {
  selection?: Binding<string> | undefined;
}
export declare function TabView(children: IRNodeChild[]): IRNode;
export declare function TabView(options: TabViewOptions, children?: IRNodeChild[]): IRNode;

export interface TextOptions {
  content?: string;
  countsDown?: boolean;
  date?: number;
  dates?: { lowerBound: number; upperBound: number };
  image?: IRNode;
  interval?: { start: number; end: number };
  pauseTime?: number | undefined;
  resource?: string;
  showsHours?: boolean;
  style?: Enums.Text_DateStyle;
  timerInterval?: { lowerBound: number; upperBound: number };
  verbatim?: string;
}
export declare function Text(content: string, opts?: Omit<TextOptions, 'content'>): IRNode;
export declare function Text(opts: TextOptions): IRNode;

export interface TextEditorOptions {
  text: Binding<string>;
}
export declare function TextEditor(opts?: TextEditorOptions): IRNode;

export interface TextFieldOptions {
  axis?: Enums.Axis;
  onCommit?: () => void;
  onEditingChanged?: (p0: boolean) => void;
  prompt?: string | IRNode | undefined;
  text: Binding<string>;
  title?: string;
  titleKey?: string;
  titleResource?: string;
  label?: IRNodeChild | IRNodeChild[];
}
export declare function TextField(title: string, text: any): IRNode;
export declare function TextField(title: string, text: any, onCommit?: () => void): IRNode;
export declare function TextField(options: TextFieldOptions): IRNode;

export interface TextFieldLinkOptions {
  onSubmit: (p0: string) => void;
  prompt?: string | IRNode | undefined;
  title?: string;
  titleKey?: string;
  titleResource?: string;
}
export declare function TextFieldLink(children: IRNodeChild[]): IRNode;
export declare function TextFieldLink(title: string, children?: IRNodeChild[]): IRNode;
export declare function TextFieldLink(options: TextFieldLinkOptions, children?: IRNodeChild[]): IRNode;

export interface ToggleOptions {
  isOn: Binding<boolean>;
  systemImage?: string;
  title?: string;
  titleKey?: string;
  titleResource?: string;
}
export declare function Toggle(children: IRNodeChild[]): IRNode;
export declare function Toggle(title: string, children?: IRNodeChild[]): IRNode;
export declare function Toggle(options: ToggleOptions, children?: IRNodeChild[]): IRNode;

export interface UnevenRoundedRectangleOptions {
  bottomLeadingRadius?: number;
  bottomTrailingRadius?: number;
  style?: Enums.RoundedCornerStyle;
  topLeadingRadius?: number;
  topTrailingRadius?: number;
}
export declare function UnevenRoundedRectangle(topLeadingRadius: number, opts?: Omit<UnevenRoundedRectangleOptions, 'topLeadingRadius'>): IRNode;
export declare function UnevenRoundedRectangle(opts: UnevenRoundedRectangleOptions): IRNode;

export declare function VSplitView(children: IRNodeChild | IRNodeChild[]): IRNode;

export interface VStackOptions {
  alignment?: Enums.HorizontalAlignment;
  spacing?: number | undefined;
}
export declare function VStack(children: IRNodeChild[]): IRNode;
export declare function VStack(alignment: Enums.HorizontalAlignment, children?: IRNodeChild[]): IRNode;
export declare function VStack(options: VStackOptions, children?: IRNodeChild[]): IRNode;

export interface ViewThatFitsOptions {
  in?: Enums.Axis_Set;
}
export declare function ViewThatFits(children: IRNodeChild[]): IRNode;
export declare function ViewThatFits(axes: Enums.Axis_Set, children?: IRNodeChild[]): IRNode;
export declare function ViewThatFits(options: ViewThatFitsOptions, children?: IRNodeChild[]): IRNode;

export declare function WindowVisibilityToggle(windowID: string): IRNode;

export interface ZStackOptions {
  alignment?: Enums.Alignment;
}
export declare function ZStack(children: IRNodeChild[]): IRNode;
export declare function ZStack(alignment: Enums.Alignment, children?: IRNodeChild[]): IRNode;
export declare function ZStack(options: ZStackOptions, children?: IRNodeChild[]): IRNode;


// Global declarations
declare global {
  const AsyncImage: typeof import('./IRNodes.generated').AsyncImage;
  const Button: typeof import('./IRNodes.generated').Button;
  const Capsule: typeof import('./IRNodes.generated').Capsule;
  const Circle: typeof import('./IRNodes.generated').Circle;
  const Color: typeof import('./IRNodes.generated').Color;
  const ConcentricRectangle: typeof import('./IRNodes.generated').ConcentricRectangle;
  const ContainerRelativeShape: typeof import('./IRNodes.generated').ContainerRelativeShape;
  const ContentUnavailableView: typeof import('./IRNodes.generated').ContentUnavailableView;
  const ControlGroup: typeof import('./IRNodes.generated').ControlGroup;
  const DebugReplaceableView: typeof import('./IRNodes.generated').DebugReplaceableView;
  const DefaultDocumentGroupLaunchActions: typeof import('./IRNodes.generated').DefaultDocumentGroupLaunchActions;
  const DefaultGlassEffectShape: typeof import('./IRNodes.generated').DefaultGlassEffectShape;
  const DisclosureGroup: typeof import('./IRNodes.generated').DisclosureGroup;
  const Divider: typeof import('./IRNodes.generated').Divider;
  const EditButton: typeof import('./IRNodes.generated').EditButton;
  const Ellipse: typeof import('./IRNodes.generated').Ellipse;
  const EmptyView: typeof import('./IRNodes.generated').EmptyView;
  const ForEach: typeof import('./IRNodes.generated').ForEach;
  const Form: typeof import('./IRNodes.generated').Form;
  const Gauge: typeof import('./IRNodes.generated').Gauge;
  const GeometryReader: typeof import('./IRNodes.generated').GeometryReader;
  const GlassEffectContainer: typeof import('./IRNodes.generated').GlassEffectContainer;
  const Grid: typeof import('./IRNodes.generated').Grid;
  const GridRow: typeof import('./IRNodes.generated').GridRow;
  const GroupBox: typeof import('./IRNodes.generated').GroupBox;
  const HSplitView: typeof import('./IRNodes.generated').HSplitView;
  const HStack: typeof import('./IRNodes.generated').HStack;
  const HelpLink: typeof import('./IRNodes.generated').HelpLink;
  const Image: typeof import('./IRNodes.generated').Image;
  const Label: typeof import('./IRNodes.generated').Label;
  const LabeledContent: typeof import('./IRNodes.generated').LabeledContent;
  const LazyHStack: typeof import('./IRNodes.generated').LazyHStack;
  const LazyVStack: typeof import('./IRNodes.generated').LazyVStack;
  const Link: typeof import('./IRNodes.generated').Link;
  const List: typeof import('./IRNodes.generated').List;
  const Menu: typeof import('./IRNodes.generated').Menu;
  const MenuButton: typeof import('./IRNodes.generated').MenuButton;
  const NavigationLink: typeof import('./IRNodes.generated').NavigationLink;
  const NavigationSplitView: typeof import('./IRNodes.generated').NavigationSplitView;
  const NavigationStack: typeof import('./IRNodes.generated').NavigationStack;
  const NavigationView: typeof import('./IRNodes.generated').NavigationView;
  const Path: typeof import('./IRNodes.generated').Path;
  const ProgressView: typeof import('./IRNodes.generated').ProgressView;
  const Rectangle: typeof import('./IRNodes.generated').Rectangle;
  const RenameButton: typeof import('./IRNodes.generated').RenameButton;
  const RoundedRectangle: typeof import('./IRNodes.generated').RoundedRectangle;
  const ScrollView: typeof import('./IRNodes.generated').ScrollView;
  const ScrollViewReader: typeof import('./IRNodes.generated').ScrollViewReader;
  const Section: typeof import('./IRNodes.generated').Section;
  const SecureField: typeof import('./IRNodes.generated').SecureField;
  const SettingsLink: typeof import('./IRNodes.generated').SettingsLink;
  const ShareLink: typeof import('./IRNodes.generated').ShareLink;
  const Slider: typeof import('./IRNodes.generated').Slider;
  const Spacer: typeof import('./IRNodes.generated').Spacer;
  const Stepper: typeof import('./IRNodes.generated').Stepper;
  const TabView: typeof import('./IRNodes.generated').TabView;
  const Text: typeof import('./IRNodes.generated').Text;
  const TextEditor: typeof import('./IRNodes.generated').TextEditor;
  const TextField: typeof import('./IRNodes.generated').TextField;
  const TextFieldLink: typeof import('./IRNodes.generated').TextFieldLink;
  const Toggle: typeof import('./IRNodes.generated').Toggle;
  const UnevenRoundedRectangle: typeof import('./IRNodes.generated').UnevenRoundedRectangle;
  const VSplitView: typeof import('./IRNodes.generated').VSplitView;
  const VStack: typeof import('./IRNodes.generated').VStack;
  const ViewThatFits: typeof import('./IRNodes.generated').ViewThatFits;
  const WindowVisibilityToggle: typeof import('./IRNodes.generated').WindowVisibilityToggle;
  const ZStack: typeof import('./IRNodes.generated').ZStack;
}
