import { EventEmitter, Injector } from '@angular/core';
import { CoreBaseComponent } from '../../common/base.component';
import * as i0 from "@angular/core";
export interface WizardNavigationButtonData {
    /**
     * The label for the button
     */
    label: string;
    /**
     * The space separated strings for classes.
     * Example: 'sme-class-a sme-class-b'.
     */
    class?: string;
    iconStart?: string;
    iconEnd?: string;
}
export declare class WizardNavigationButtonComponent extends CoreBaseComponent {
    protected get logSourceName(): string;
    /**
     * The internal buttons object
     */
    buttonsInternal: WizardNavigationButtonData[];
    render: boolean;
    private currentStartButtonIndexInternal;
    showIcons: boolean;
    leftIcon: string;
    rightIcon: string;
    buttonAutoWidth: boolean;
    /**
     * Getter buttons
     */
    get buttons(): WizardNavigationButtonData[];
    /**
     * Setter buttons
     */
    set buttons(input: WizardNavigationButtonData[]);
    /**
     * Getter currentStartButtonIndex
     */
    get currentStartButtonIndex(): number;
    /**
     * Setter currentStartButtonIndex
     */
    set currentStartButtonIndex(input: number);
    private readonly defaultStartIndex;
    /**
     * It emits the start button clicked event.
     */
    startButtonClicked: EventEmitter<void>;
    /**
     * It emits the end button clicked event.
     */
    endButtonClicked: EventEmitter<void>;
    /**
     * It checks the enable/disable state for the start button
     * @param index The current index for wizard start button
     * @returns true for enable and false for disable
     */
    checkStartDisabled(index: number): boolean;
    /**
     * It checks the enable/disable state for the end button
     * @param index The current index for wizard end button
     * @returns true for enable and false for disable
     */
    checkEndDisabled(index: number): boolean;
    constructor(injector: Injector);
    /**
     * It resets the current start button index to -2 if no button objects,
     * Otherwise it sets the button index to 0.
     */
    reset(): void;
    /**
     * It updates the component by label name, this is tied to pivot tab component clicking events.
     * @param label the label name.
     */
    updateStartIndexByLabel(label: string): void;
    /**
     * It handles the start index button click
     */
    onStartButtonClick(): void;
    /**
     * It handles the end index button click
     */
    onEndButtonClick(): void;
    /**
     * It gets the current start index button label.
     * @returns the label string.
     */
    getCurrentStartButtonLabel(): string;
    /**
     * It gets the current activated button label.
     * @returns the label string.
     */
    getCurrentActivatedButtonLabel(): string;
    /**
     * It gets the current end index button label.
     * @returns the label string.
     */
    getCurrentEndButtonLabel(): string;
    /**
     * It gets the button label.
     * @param index the index for label.
     * @returns the label string.
     */
    private getButtonLabel;
    static ɵfac: i0.ɵɵFactoryDeclaration<WizardNavigationButtonComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<WizardNavigationButtonComponent, "sme-wizard-navigation-button", never, { "showIcons": "showIcons"; "leftIcon": "leftIcon"; "rightIcon": "rightIcon"; "buttonAutoWidth": "buttonAutoWidth"; "buttons": "buttons"; }, { "startButtonClicked": "startButtonClicked"; "endButtonClicked": "endButtonClicked"; }, never, never, false, never>;
}
