import { ApprovalActionType, AttributeType, Class, ProductType, User, UserAndRole } from '@zeniai/client-epic-state';
import { ResponsiveSized } from '../../../../context/windowSizeProvider';
import { DisableMode } from '../../../formElements/common/common';
import { ApprovalRequireNotifyOptionType } from '../../billPay/billPaySetUp/components/formElements/SingleSelectField';
import { NonUserOption } from '../../billPay/billPaySetUp/components/formElements/UserMultiSelect';
/**
 * Dimensions
 */
export declare const D: {
    width: ResponsiveSized;
    height: ResponsiveSized;
    controlHeight: ResponsiveSized;
    paddingLeftRight: ResponsiveSized;
    paddingTopBottom: ResponsiveSized;
    marginTop: ResponsiveSized;
    marginBottom: ResponsiveSized;
    labelMarginLeft: ResponsiveSized;
    labelMarginRight: ResponsiveSized;
    labelMarginTop: ResponsiveSized;
};
export interface FollowStepsSectionProps {
    allAccountingClasses: Class[];
    allAttributes: AttributeType[];
    allUserWithRoles: UserAndRole[];
    approveNotifyPlaceholder: string;
    approversPlaceholder: string;
    filteredApprovers: User[];
    filteredAttributes: AttributeType[];
    label: {
        label: string;
        width?: number;
    };
    notifiersPlaceholder: string;
    productType: ProductType;
    sectionId: string;
    stepsInfo: StepData[];
    userSelectPlaceholder: string;
    isDisabled?: DisableMode;
    style?: React.CSSProperties;
}
export interface StepData {
    actors: {
        allNonUsers: NonUserOption[];
        allUsers: User[];
        selectedNonUsers: NonUserOption[];
        selectedUsers: User[];
    };
    stepIndex: number;
    stepType: {
        allOptions: ApprovalRequireNotifyOptionType[];
        selectedOption: ApprovalActionType | undefined;
    };
}
export type FormDataKeys = keyof StepData;
export declare const uniqueName: (sectionId: string, key: FormDataKeys) => `${string}.stepIndex` | `${string}.actors` | `${string}.stepType`;
export type FormDataKeyUniqueNames = ReturnType<typeof uniqueName>;
export declare function FollowStepsSectionMedium({ label, isDisabled, sectionId, style, approversPlaceholder, notifiersPlaceholder, userSelectPlaceholder, approveNotifyPlaceholder, allUserWithRoles, filteredApprovers, allAttributes, filteredAttributes, allAccountingClasses, stepsInfo, productType, }: FollowStepsSectionProps): import("react/jsx-runtime").JSX.Element;
/**
 * Helpers
 */
export declare const getDefaultStepInfo: (stepIndex: number, allUsers: User[], allAttributes: AttributeType[]) => StepData;
export declare const getNonUserOptions: (attributes: AttributeType[]) => NonUserOption[];
export declare const requireAndNotifyOptions: ApprovalRequireNotifyOptionType[];
