import { Observable } from 'rxjs';
import { FormPiecePropagate } from './piece-propagate';
import { FormAction } from './action';
import { FieldDescriptor } from './field';
import { RecordFormSubSection } from './subsection';
import { SectionDefinition, IFormConfig } from '../../interfaces/form-config.interface';
export declare class RecordFormSection extends FormPiecePropagate {
    private readonly _activation;
    private readonly _inactivation;
    private _active;
    private _sectionId;
    private _sectionCode;
    private _sectionTitle;
    private _subSections;
    private _subSectionsObj;
    private _exclusiveSubSectionsByAttr;
    constructor(sectionReceived: SectionDefinition, formObject: any, formConfig: IFormConfig);
    get code(): string | null;
    get activation(): Observable<string>;
    get inactivation(): Observable<string>;
    get active(): boolean;
    get sectionId(): string | null;
    get sectionCode(): string | null;
    get sectionTitle(): string | null;
    get subSections(): RecordFormSubSection[];
    get subSectionsObj(): Record<string, RecordFormSubSection>;
    set active(active: boolean);
    set sectionId(sectionId: string | null);
    set sectionCode(sectionCode: string | null);
    set sectionTitle(sectionTitle: string | null);
    set subSections(subSections: RecordFormSubSection[]);
    set subSectionsObj(subSectionsObj: Record<string, RecordFormSubSection>);
    activate(): void;
    inactivate(): void;
    get title(): string | null;
    set title(title: string | null);
    getVisibleSubsections(state?: string): RecordFormSubSection[];
    getSubsection(subSectionCode: string): RecordFormSubSection | null;
    activateSubSection(subSectionCode: string): void;
    getFields(): FieldDescriptor[];
    getActions(): FormAction[];
    getActionNames(): string[];
    getFieldNames(): string[];
    getField(name: string): FieldDescriptor | null;
    formStateChangeCustomSubscribe(form: any, formChangeSubject: any): void;
}
