import type { Dispatch } from '../../../types.js';
import type { Snippet } from 'svelte';
import type { HTMLButtonAttributes } from 'svelte/elements';
/**
* Button component with variant system and action dispatch pattern.
*
* @packageDocumentation
*
* @example
* ```svelte
*
*
*
*
*
* ```
*/
interface ButtonProps extends Omit {
/**
* Visual variant of the button.
*/
variant?: 'default' | 'primary' | 'secondary' | 'destructive' | 'outline' | 'ghost' | 'link';
/**
* Size of the button.
*/
size?: 'sm' | 'md' | 'lg' | 'icon';
/**
* Disabled state.
*/
disabled?: boolean;
/**
* Loading state (shows spinner, disables interaction).
*/
loading?: boolean;
/**
* Reducer action to dispatch on click (Composable Architecture pattern).
*/
action?: Action;
/**
* Dispatch function from store (required if action is provided).
*/
dispatch?: Dispatch;
/**
* Additional CSS classes.
*/
class?: string;
/**
* Button content.
*/
children: Snippet;
}
declare function $$render(): {
props: ButtonProps;
exports: {};
bindings: "";
slots: {};
events: {};
};
declare class __sveltets_Render {
props(): ReturnType>['props'];
events(): ReturnType>['events'];
slots(): ReturnType>['slots'];
bindings(): "";
exports(): {};
}
interface $$IsomorphicComponent {
new (options: import('svelte').ComponentConstructorOptions['props']>>): import('svelte').SvelteComponent['props']>, ReturnType<__sveltets_Render['events']>, ReturnType<__sveltets_Render['slots']>> & {
$$bindings?: ReturnType<__sveltets_Render['bindings']>;
} & ReturnType<__sveltets_Render['exports']>;
(internal: unknown, props: ReturnType<__sveltets_Render['props']> & {}): ReturnType<__sveltets_Render['exports']>;
z_$$bindings?: ReturnType<__sveltets_Render['bindings']>;
}
declare const Button: $$IsomorphicComponent;
type Button = InstanceType>;
export default Button;
//# sourceMappingURL=Button.svelte.d.ts.map