import { BehaviorSubject } from 'rxjs';
import { BusinessObject } from '@colijnit/ioneconnector/build/model/business-object';
import { ValidationResult } from '@colijnit/ioneconnector/build/model/validation-result';
import { ObjectConfigurationDefaultValueType } from '@colijnit/ioneconnector/build/type/object-configuration-default-value-type';
import { ObjectConfigKind } from '@colijnit/ioneconnector/build/enum/object-config-kind';
import { ObjectConfiguration } from '@colijnit/ioneconnector/build/model/object-configuration';
export declare abstract class BaseModuleScreenConfigService {
    abstract screenModuleName: string;
    readonly configSet: BehaviorSubject<ObjectConfiguration[]>;
    get configObjects(): ObjectConfiguration[];
    controlValidityByBoMap: {
        bo: BusinessObject;
        controlKey: string;
        valid: boolean;
    }[];
    private _configObjects;
    private _objectConfigsMap;
    loadConfig(params?: string[], insertRights?: boolean): Promise<ObjectConfiguration[]>;
    lazyLoadConfig(): Promise<void>;
    isActiveFieldValidationObject(configObject: ObjectConfiguration): boolean;
    isBoValid(bo: BusinessObject): boolean;
    getObjectConfigurationFor(configName: string): ObjectConfiguration;
    setObjectConfigurationFor(configName: string, configObject: ObjectConfiguration): void;
    mayRead(configName: string): boolean;
    isReadonly(configName: string): boolean;
    mayWrite(configName: string): boolean;
    immediatelyVisible(configName: string): boolean;
    immediatelyHidden(configName: string): boolean;
    noRights(configName: string): boolean;
    isHidden(configName: string): boolean;
    isRequired(configName: string): boolean;
    getDefaultValue(configName: string): ObjectConfigurationDefaultValueType;
    getDefaultStringValue(configName: string): string;
    getDefaultNumberValue(configName: string): number;
    getMaxLength(configName: string): number;
    getDecimals(configName: string): number;
    hasConfigObjects(): boolean;
    isKind(configName: string, kind: ObjectConfigKind): boolean;
    isDataNameHiddenByItselfOrAnyOfItsParentRubrics(dataName: string): boolean;
    protected abstract loadConfigForModule(params: string[], insertRights?: boolean): Promise<ObjectConfiguration[]>;
    private isDataNameHiddenByAnyOfItsParentRubrics;
    private _getConfigNameByDataName;
    private _getConfigObjectByDataName;
    private _buildScreenConfigMap;
    setScreenConfigurationObjectsReadOnly(value: boolean): void;
    setScreenConfigurationObjectsRedErrorBackground(errorValidation: ValidationResult, setAllFalse?: boolean): void;
}
