import { SvelteComponent } from 'svelte'
import type { GenericInputOptions, GenericInputRef } from './GenericInput.svelte'
export type GenericInputFoldingOptions = GenericInputOptions & {
	expanded?: boolean
}
export type GenericInputFoldingRef = GenericInputRef
declare class __sveltets_Render<
	T extends any,
	U extends GenericInputFoldingOptions = GenericInputFoldingOptions,
	V extends GenericInputFoldingRef = GenericInputFoldingRef,
> {
	props(): Omit<
		{
			/**
			 * The binding's target object with values to manipulate.
			 *
			 * @bindable
			 */
			object: import('@tweakpane/core').Bindable & Record<string, T>
			/**
			 * The key for the value in the target `object` that the control should
			 * manipulate.
			 */
			key: string
			/**
			 * Prevent interactivity and gray out the control.
			 *
			 * @default `false`
			 */
			disabled?: boolean
			/**
			 * Text displayed next to control.
			 *
			 * @default `undefined`
			 */
			label?: string | undefined
			/**
			 * Tweakpane's internal options object.
			 *
			 * See
			 * [`BindingParams`](https://tweakpane.github.io/docs/api/types/BindingParams.html).
			 *
			 * Valid types are contingent on the type of the value `key` points to in
			 * `object`.
			 *
			 * This is intended internal use, when implementing convenience components
			 * wrapping Binding's functionality. Options of interest are instead exposed
			 * as top-level props in _Svelte Tweakpane UI_.
			 *
			 * @default `undefined`
			 */
			options?: U | undefined
			/**
			 * Custom color scheme.
			 *
			 * If undefined, inherits default Tweakpane theme equivalent to
			 * `ThemeUtils.presets.standard`, or the theme set with
			 * `setGlobalDefaultTheme()`.
			 *
			 * @default `undefined`
			 */
			theme?: import('..').Theme | undefined
			/**
			 * Reference to internal Tweakpane
			 * [`BindingApi`](https://tweakpane.github.io/docs/api/classes/_internal_.BindingApi.html)
			 * for this control.
			 *
			 * This property is exposed for advanced use cases only, such as when
			 * implementing convenience components wrapping `<Binding>`'s functionality.
			 *
			 * Direct manipulation of Tweakpane's internals can break _Svelte Tweakpane
			 * UI_ abstractions.
			 *
			 * @bindable
			 * @readonly
			 */
			ref?: V | undefined
			/**
			 * Imported Tweakpane `TpPluginBundle` (aliased as `Plugin`) module to
			 * automatically register in the `<Binding>`'s containing `<Pane>`.
			 *
			 * This property is exposed for advanced use cases only, such as when
			 * implementing convenience components wrapping `<Binding>`'s functionality in
			 * combination with a Tweakpane plugin.
			 *
			 * Direct manipulation of Tweakpane's internals can break _Svelte Tweakpane
			 * UI_ abstractions.
			 *
			 * @default `undefined`
			 */
			plugin?: import('../utils.js').Plugin | undefined
		},
		'object' | 'key'
	> & {
		/**
		 * The value to control.
		 *
		 * @bindable
		 */
		value: T
	} & {
		/**
		 * DOM class name of the button used to expand and collapse the input's
		 * picker.
		 *
		 * @default `undefined`
		 */
		buttonClass?: string
		/**
		 * Expand or collapse the input's picker.
		 *
		 * @default `false`
		 * @bindable
		 */
		expanded?: boolean
		/**
		 * The style of value "picker" to use in the input.
		 *
		 * @default `'popup'`
		 */
		picker?: 'inline' | 'popup'
		/**
		 * Allow users to interactively expand / contract the picker.
		 *
		 * @default `true`
		 */
		userExpandable?: boolean
	}
	events(): {
		change: import('..').BindingChangeEvent
	} & {
		[evt: string]: CustomEvent<any>
	}
	slots(): {}
}
export type GenericInputFoldingProps<
	T extends any,
	U extends GenericInputFoldingOptions = GenericInputFoldingOptions,
	V extends GenericInputFoldingRef = GenericInputFoldingRef,
> = ReturnType<__sveltets_Render<T, U, V>['props']>
export type GenericInputFoldingEvents<
	T extends any,
	U extends GenericInputFoldingOptions = GenericInputFoldingOptions,
	V extends GenericInputFoldingRef = GenericInputFoldingRef,
> = ReturnType<__sveltets_Render<T, U, V>['events']>
export type GenericInputFoldingSlots<
	T extends any,
	U extends GenericInputFoldingOptions = GenericInputFoldingOptions,
	V extends GenericInputFoldingRef = GenericInputFoldingRef,
> = ReturnType<__sveltets_Render<T, U, V>['slots']>
/**
 * This component is for internal use only.
 *
 * @sourceLink
 * [GenericInputFolding.svelte](https://github.com/kitschpatrol/svelte-tweakpane-ui/blob/main/src/lib/internal/GenericInputFolding.svelte)
 */
export default class GenericInputFolding<
	T extends any,
	U extends GenericInputFoldingOptions = GenericInputFoldingOptions,
	V extends GenericInputFoldingRef = GenericInputFoldingRef,
> extends SvelteComponent<
	GenericInputFoldingProps<T, U, V>,
	GenericInputFoldingEvents<T, U, V>,
	GenericInputFoldingSlots<T, U, V>
> {}
export {}
