import { SdSearch } from '@sd-angular/core/forms/models';
import { SdFormGenericArgs, SdFormGenericDefinitionHtml, SdFormGenericDefinitionSelection, SdFormGenericDefinitionTable, SdFormGenericSelectionItem, SdFormGenericTemplate } from '../models';
import { SdFormGenericValidationConfiguration } from '../models/form-generic-validation.model';
export interface IWorkflowConfigurationForm<TSelectionArgs = any> {
    templates: SdFormGenericTemplate[];
    selections: SdFormGenericDefinitionSelection<any, TSelectionArgs>[] | (() => SdFormGenericDefinitionSelection<any, TSelectionArgs>[]) | (() => Promise<SdFormGenericDefinitionSelection[]>);
    getValues?: (key: string, selectionArgs?: TSelectionArgs) => Promise<SdFormGenericSelectionItem[]>;
    getLazyValues?: (key: string, selectionArgs?: TSelectionArgs) => ((searchArgs: Parameters<SdSearch>[0], args: SdFormGenericArgs) => Promise<SdFormGenericSelectionItem[]>);
    tables: SdFormGenericDefinitionTable[];
    htmls: SdFormGenericDefinitionHtml[] | (() => SdFormGenericDefinitionHtml[]) | (() => Promise<SdFormGenericDefinitionHtml[]>);
    validation?: SdFormGenericValidationConfiguration;
}
