/// <reference types="xrm" />
import { StringPropertyObject } from "../../typing";
/** Proxy allowing shortcut access to the columns indicated in the configuration of the features. */
declare abstract class XrmHandler<T extends StringPropertyObject> implements ProxyHandler<T> {
    private _formCtx;
    protected get formCtx(): Xrm.FormContext;
    constructor(formCtx: Xrm.FormContext);
    abstract get(target: T, prop: string, receiver: unknown): unknown;
}
/** Proxy returning the columns */
export declare class XrmColumnHandler<T extends StringPropertyObject> extends XrmHandler<T> {
    constructor(formCtx: Xrm.FormContext);
    get(target: T, prop: string): unknown;
}
/** Proxy returning the controls */
export declare class XrmControlHandler<T extends StringPropertyObject> extends XrmHandler<T> {
    constructor(formCtx: Xrm.FormContext);
    get(target: T, prop: string): unknown;
}
/** Proxy returning the columns values */
export declare class XrmValueHandler<T extends StringPropertyObject> extends XrmHandler<T> {
    constructor(formCtx: Xrm.FormContext);
    get(target: T, prop: string): unknown;
}
/** Proxy returning the tabs */
export declare class XrmTabHandler<T extends StringPropertyObject> extends XrmHandler<T> {
    constructor(formCtx: Xrm.FormContext);
    get(target: T, prop: string): unknown;
}
export {};
