import { OnInit, OnChanges, AfterViewInit, ChangeDetectorRef, ElementRef, Renderer2, ViewContainerRef, ComponentFactoryResolver, SimpleChanges } from '@angular/core';
import { Loading } from '../loading/loading.module';
import { ButtonType } from './button-types';
/**
 * Buttons are used primarily for actions, such as “Add”, “Close”, “Cancel”, or “Save”.
 * Plain buttons, which look similar to links, are used for less important or less commonly used actions, such as “view shipping settings”.
 *
 * For navigational actions that appear within or directly following a sentence, use the link component.
 */
export declare class Button implements OnInit, AfterViewInit, OnChanges {
    private ref;
    private el;
    private renderer;
    private viewContainerRef;
    private componentFactoryResolver;
    /**
     * Sets the button type. Can be `primary`, `basic`, `plain`, `destructive` or `outline_white`.
     */
    sukaButton: ButtonType;
    /**
     * Button size. Can be `md` (Medium), `sm` (Small) or `lg` (Large).
     */
    size?: 'md' | 'sm' | 'lg';
    readonly basic: boolean;
    readonly primary: boolean;
    readonly plain: boolean;
    readonly destructive: boolean;
    readonly outline_white: boolean;
    /**
     * Set to `true` for a skeleton state button.
     */
    skeleton?: boolean;
    /**
     * Set to `true` to display the outline version of the button.
     */
    outline?: boolean;
    /**
     * Set to `true` for a hover effect.
     */
    hover?: boolean;
    /**
     * Set to `true` for a button that uses the full horizontal width;
     */
    fullWidth?: boolean;
    /**
     * Sets to `true` when the button is on a button group.
     */
    inGroup?: boolean;
    /**
     * Set to `true` for a loading button.
     */
    loading?: boolean;
    readonly buttonSmall: boolean;
    readonly buttonLarge: boolean;
    /**
     * @ignore
     */
    loadingSpinner: Loading;
    constructor(ref: ChangeDetectorRef, el: ElementRef, renderer: Renderer2, viewContainerRef: ViewContainerRef, componentFactoryResolver: ComponentFactoryResolver);
    private getType;
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngAfterViewInit(): void;
}
