import { ILoan, Events, LoanObject, ActionResponse, LoanLevelActions, LoanCollection, LoanCollectionObject, ApplicationInfo, FieldOptions, FieldOptionsParam, CurrentApplicationOptions, EditModeOptions } from '@elliemae/pui-scripting-object';
import { ScriptingObject, Event, CAppBridge } from '@elliemae/pui-app-bridge';
export declare class Loan extends ScriptingObject implements ILoan {
    #private;
    constructor(appBridge: CAppBridge);
    readonly ApplicationSelected: Event<Events>;
    readonly Close: Event<Events>;
    readonly Change: Event<Events>;
    readonly Committed: Event<Events>;
    readonly EditModeChange: Event<Events>;
    readonly FieldChanged: Event<Events>;
    readonly MilestoneCompleted: Event<Events>;
    readonly Open: Event<Events>;
    readonly PreCommit: Event<Events>;
    readonly PreMilestoneComplete: Event<Events>;
    readonly Sync: Event<Events>;
    all: () => Promise<LoanObject>;
    applyLock: (fieldId: string, lock: boolean) => Promise<void>;
    calculate: () => Promise<LoanObject>;
    commit: () => Promise<string>;
    execAction: (type: LoanLevelActions, params?: Record<string, unknown>) => Promise<ActionResponse>;
    getCollection: (name: LoanCollection) => Promise<LoanCollectionObject>;
    getCurrentApplication: () => Promise<ApplicationInfo>;
    getField: (id: string) => Promise<string>;
    getFieldOptions: (param: FieldOptionsParam) => Promise<Record<string, FieldOptions[]>>;
    getFields: (ids: string[]) => Promise<Record<string, string>>;
    isReadOnly: () => Promise<boolean>;
    merge: () => Promise<void>;
    setCurrentApplication: (options: CurrentApplicationOptions) => Promise<void>;
    setEditMode: (options: EditModeOptions) => Promise<void>;
    setFields: (fields: Record<string, string>) => Promise<void>;
}
