import { BuilderTask, BuilderField } from '../fb/models/builder.model';
export interface ISorting extends Object {
    sortable?: boolean;
    asc?: boolean;
    active?: boolean;
    label?: string;
    key?: string;
}
export declare class FormBuilderHelper {
    private _abstractControls;
    constructor();
    sanitizeFields(fields: BuilderField[], filters: any, sortings: ISorting[]): any[];
    applySort(arr: any[], sortings: ISorting[]): any[];
    readonly defaultSortings: {
        title: {
            sortable: boolean;
            active: boolean;
            asc: any;
        } & ISorting;
        name: {
            sortable: boolean;
            active: boolean;
            asc: any;
        } & ISorting;
        referenceName: {
            sortable: boolean;
            active: boolean;
            asc: any;
        } & ISorting;
        description: {
            sortable: boolean;
            active: boolean;
            asc: any;
        } & ISorting;
        label: {
            sortable: boolean;
            active: boolean;
            asc: any;
        } & ISorting;
        size: {
            sortable: boolean;
            active: boolean;
            asc: any;
        } & ISorting;
    };
    applyFilter(to: BuilderField[], _filter: string): BuilderField[];
    readonly basicFields: BuilderField[];
    propertiesByControlType(control: BuilderField): any[];
    AbstractControl(control: any, showUnknown?: boolean): any;
    sanitizeProperties(properties: Object, form: any, control: any, model: any): {
        type: any;
        value: any;
        name: string;
        id: string;
        source: any;
    }[];
    move(array: any, from: any, to: any): any;
    accessPath(obj: any, path: any, separator?: string): any;
    parsePropertySource(targets: any, property: any): {
        target: any;
        path: any;
    };
    sanitizeTask(task: BuilderTask): any;
    /**
     * Deletes property from obj without hurting reference
     */
    deletePropertyNoRef(obj: any, property: any): {};
}
