import { Icon } from '../../global/shared-types/icon.types';
/**
 * @exampleComponent limel-example-button-basic
 * @exampleComponent limel-example-button-primary
 * @exampleComponent limel-example-button-outlined
 * @exampleComponent limel-example-button-disabled
 * @exampleComponent limel-example-button-icon
 * @exampleComponent limel-example-button-loading
 * @exampleComponent limel-example-button-click-success
 * @exampleComponent limel-example-button-click-fail
 * @exampleComponent limel-example-button-reduce-presence
 * @exampleComponent limel-example-button-colors
 * @exampleComponent limel-example-button-composite
 */
export declare class Button {
    /**
     * The text to show on the button.
     */
    label: string;
    /**
     * Set to `true` to make the button primary.
     */
    primary: boolean;
    /**
     * Set to `true` to make the button outlined.
     */
    outlined: boolean;
    /**
     * Set icon for the button
     */
    icon: string | Icon;
    /**
     * Set to `true` to disable the button.
     */
    disabled: boolean;
    /**
     * Set to `true` to put the button in the `loading` state.
     * This also disables the button.
     */
    loading: boolean;
    /**
     * Set to `true` to indicate failure instead of success when the button is
     * no longer in the `loading` state.
     */
    loadingFailed: boolean;
    private justLoaded;
    private host;
    private justLoadedTimeout?;
    componentWillLoad(): void;
    disconnectedCallback(): void;
    render(): any;
    protected loadingWatcher(newValue: boolean, oldValue: boolean): void;
    private hasFinishedLoading;
    private handleLoadingFinished;
    private handleLoadingStarted;
    private renderLoadingIcons;
    private renderIcon;
    private renderLabel;
    private renderSpinner;
    private filterClickWhenDisabled;
}
//# sourceMappingURL=button.d.ts.map