/* eslint-disable */
import type { ConditionalValue } from '../types/index';
import type { Pretty } from '../types/helpers';
import type { DistributiveOmit } from '../types/system-types';

interface ModalVariant {
  size: "xs" | "sm" | "md" | "lg" | "xl" | "2xl" | "3xl" | "4xl" | "5xl" | "6xl" | "full"
scrollOverflowBehavior: "inside" | "outside"
isCentered: boolean
variant: "clickThrough"
}

type ModalVariantMap = {
  [key in keyof ModalVariant]: Array<ModalVariant[key]>
}

export type ModalVariantProps = {
  [key in keyof ModalVariant]?: ConditionalValue<ModalVariant[key]>
}

export interface ModalRecipe {
  __type: ModalVariantProps
  (props?: ModalVariantProps): Pretty<Record<"trigger" | "backdrop" | "container" | "content" | "title" | "description" | "closeTrigger" | "root" | "footer" | "trigger" | "backdrop" | "container" | "content" | "title" | "description" | "closeTrigger" | "root" | "footer", string>>
  raw: (props?: ModalVariantProps) => ModalVariantProps
  variantMap: ModalVariantMap
  variantKeys: Array<keyof ModalVariant>
  splitVariantProps<Props extends ModalVariantProps>(props: Props): [ModalVariantProps, Pretty<DistributiveOmit<Props, keyof ModalVariantProps>>]
}


export declare const modal: ModalRecipe