import { AfterViewChecked, ChangeDetectorRef, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';
import { NgbTab } from '@ng-bootstrap/ng-bootstrap';
import { StepTitleComponent } from '../../components/stepper/step-title.component';
import { StepContentDirective } from './step-content.directive';
import { Subscription } from 'rxjs';
export declare class StepDirective implements AfterViewChecked, OnChanges, OnDestroy {
    private cd;
    constructor(cd: ChangeDetectorRef);
    stepNumber: number;
    hasSubscribedToContentUpdates: boolean;
    isCompleteStatusSubscription: Subscription;
    isComplete: boolean;
    stepTitleComponent: StepTitleComponent;
    stepContent: StepContentDirective;
    tab: NgbTab;
    /**
     * Checks for stepContent child directive so that we can subscribe to their changes.
     * Checks for child stepTitleComponent so that we can update its props
     *
     * Doing these checks here instead of ngOnInit because they were available there.
     */
    ngAfterViewChecked(): void;
    /**
     * When isComplete is changed via an @Input we need to react to it
     * @param changes
     */
    ngOnChanges(changes: SimpleChanges): void;
    ngOnDestroy(): void;
    /**
     * Updates the child stepTitleComponent stepNumber prop run a change detection to
     * sync everything up.
     */
    updateStepTitleComponent(): void;
    /**
     * Updates the stepNumber prop of the child stepTitleComponent if the component exists
     */
    onIsCompleteStatusUpdate(): void;
    /**
     * Subscribes the the StepContentDirective isComplete updates and sets
     * a flag so that we only subscribe once.
     */
    subscribeToContentUpdates(): void;
    /**
     * Sets the local prop isComplete, and does the post-set action
     * @param isComplete
     */
    onStepContentCompleteStatusUpdate(isComplete: boolean): void;
}
