import { AdaptableObject } from '../../../AdaptableState/Common/AdaptableObject';
import { AdaptableApi } from '../../../Api/AdaptableApi';
import { ModuleInfo } from '../../../Strategy/Interface/IModule';
import { ModuleParams } from '../../Components/SharedProps/ModuleViewPopupProps';
export interface AdaptableWizardStep {
    canNext(): boolean;
    canBack(): boolean;
    next(): void;
    back(): void;
    getIndexStepIncrement(): number;
    getIndexStepDecrement(): number;
}
export interface AdaptableWizardStepProps<T> {
    data?: T;
    updateGoBackState?(): void;
    api: AdaptableApi;
    moduleInfo: ModuleInfo;
}
export interface AdaptableObjectExpressionAdaptableWizardProps<View> extends AdaptableObjectAdaptableWizardProps<View> {
    onSetNewNamedQuery: (newNamedQuery: string) => void;
}
export interface AdaptableWizardProps<View> extends React.ClassAttributes<View> {
    wizardStartIndex: number;
    onCloseWizard: () => void;
    onFinishWizard: (data?: any) => void;
    modalContainer: HTMLElement;
    canFinishWizard: Function;
    moduleInfo: ModuleInfo;
}
export interface AdaptableObjectAdaptableWizardProps<View> extends AdaptableWizardProps<View> {
    configEntities: AdaptableObject[];
    editedAdaptableObject: AdaptableObject;
    api: AdaptableApi;
}
export interface AdaptableOnePageWizardProps<T extends AdaptableObject> {
    moduleInfo?: ModuleInfo;
    modal?: boolean;
    data: T;
    configEntities?: T[];
    wizardStartIndex?: number;
    onCloseWizard: VoidFunction;
    onFinishWizard: (data: T) => void;
    defaultCurrentSectionName?: string;
    abObjectType?: {
        name: string;
        label?: string;
    };
    popupParams?: ModuleParams;
}
