import { ClientApplication } from '../../client'; import { ActionSet } from '../helper'; import { ActionSetProps, ClickAction, Component, MetaAction } from '../types'; import { Action, ClickPayload, Icon, Options, Payload, Style } from './types'; export interface ButtonUpdateAction extends MetaAction { readonly group: string; payload: Payload; } export declare type ButtonAction = ButtonUpdateAction | ClickAction | MetaAction; export declare function clickButton(group: string, component: Component, payload?: ClickPayload): ClickAction; export declare function update(group: string, component: Component, props: Payload): ButtonUpdateAction; export declare function isValidButtonProps(button: Payload): boolean; export declare class Button extends ActionSet implements ActionSetProps { label: string; disabled: boolean; icon?: Icon; style?: Style; constructor(app: ClientApplication, options: Options); readonly options: Options; readonly payload: Payload; set(options: Partial, shouldUpdate?: boolean): this; dispatch(action: Action.UPDATE): ActionSet; dispatch(action: Action.CLICK, payload?: any): ActionSet; } export declare function create(app: ClientApplication, options: Options): Button;