import { ReportFormat } from './models/report';
/**
 * Set a field's requirement level
 * @param fieldName Name of field
 * @param requiredLevel Requirement level
 * @param form Form context
 */
export declare function setFieldRequirementLevel(fieldName: string, requiredLevel: Xrm.Attributes.RequirementLevel, form: Xrm.FormContext): boolean;
/**
 * Set a control's visibility
 * @param controlName Name of control
 * @param visible Visible
 * @param allControls Apply to all controls
 * @param form Form context
 */
export declare function setControlVisibility(controlName: string, allControls: boolean, visible: boolean, form: Xrm.FormContext): boolean;
/**
 * Set a control's label
 * @param controlName Name of control
 * @param label Label for control
 * @param form Form context
 */
export declare function setControlLabel(controlName: string, label: string, form: Xrm.FormContext): boolean;
/**
 * Set a default value on a field
 * @param fieldName Name of field
 * @param value Default value
 * @param form Form context
 * @param fireOnChange Fire field on change event
 */
export declare function setDefaultValue(fieldName: string, value: string | number | Xrm.LookupValue[] | boolean, form: Xrm.FormContext, fireOnChange?: boolean): boolean;
/**
 * Add a form notification that is cleared after a certain time
 * @param message Notification message
 * @param level Form notification level
 * @param uniqueId Unique Id for the message
 * @param timeout Timeout before clearing the notififcation
 * @param form Form context
 */
export declare function addFormNotification(message: string, level: Xrm.FormNotificationLevel, uniqueId: string, timeout: number | undefined, form: Xrm.FormContext): boolean;
/**
 * Add an on change event to a field
 * @param fieldName Name of field
 * @param event Event to fire
 * @param form Form context
 */
export declare function addOnChange(fieldName: string, event: Xrm.Events.ContextSensitiveHandler, form: Xrm.FormContext): boolean;
/**
 * Remove an on change event from a field
 * @param fieldName Name of field
 * @param event Event to fire
 * @param form Form context
 */
export declare function removeOnChange(fieldName: string, event: Xrm.Events.Attribute.ChangeEventHandler, form: Xrm.FormContext): boolean;
/**
 * Set a value on a field
 * @param fieldName Name of field
 * @param value Value
 * @param form Form context
 * @param fireOnChange Fire field on change event
 */
export declare function setValue(fieldName: string, value: string | number | Xrm.LookupValue[] | boolean, form: Xrm.FormContext, fireOnChange?: boolean): boolean;
/**
 * Check if a field contains data
 * @param fieldName Name of field
 * @param form Form context
 */
export declare function fieldContainsData(fieldName: string, form: Xrm.FormContext): boolean;
/**
 * Disable/enable controls for a field
 * @param fieldName Name of control
 * @param disabled Disable or enable field
 * @param form Form context
 */
export declare function setDisabled(fieldName: string, allControls: boolean, disabled: boolean, form: Xrm.FormContext): boolean;
/**
 * Add presearch event to lookup control
 * @param fieldName Name of control
 * @param handler Handler for presearch
 * @param form Form context
 */
export declare function addPreSearch(fieldName: string, handler: Xrm.Events.ContextSensitiveHandler, form: Xrm.FormContext): boolean;
/**
 * Navigate to different form
 * @param form Form context
 * @param label Label of form to navigate to
 */
export declare function navigateToForm(form: Xrm.FormContext, label: string): void;
/**
 * Filter lookup field
 * @param form Form context
 * @param lookupAttribute Logical name of attribute to which the filter will apply
 * @param attributeFilter Logical name of the attribute to filter on
 * @param values Values for the filter
 */
export declare function addLookupFilter(form: Xrm.FormContext, lookupAttribute: string, attributeFilter: string, values: string[] | number[] | boolean[]): boolean;
/**
 * Add on save event
 * @param form Form context
 * @param event Event
 */
export declare function addOnSave(form: Xrm.FormContext, event: Xrm.Events.ContextSensitiveHandler): void;
/**
 * Get formatted value from entity
 * @param entity Entity
 * @param field Field
 */
export declare function getFormattedValue(entity: Record<string, string>, field: string): string;
/**
 * Parse GUID by removing curly braces and converting to uppercase
 * @param id GUID to parse
 */
export declare function parseGuid(id: string): string;
/**
 * Check if two GUIDs are equal
 * @param id1 GUID 1
 * @param id2 GUID 2
 */
export declare function areGuidsEqual(id1: string, id2: string): boolean;
/**
 * Generate a pre-filtered report
 * @param rowId Row id of record
 * @param reportId Report id
 * @param table Logical table name of record
 * @param format Format for exported report
 * @param reportParameter Report pre filter parameter name
 */
export declare function generatePrefilteredReport(rowId: string, reportId: string, table: string, format: ReportFormat, parameterName: string): Promise<string>;
/**
 * Get environment variable
 * @param variableName Name of environment variable to return
 * @returns Current or default variable value
 */
export declare function getEnvironmentVariable(variableName: string): Promise<string | number | boolean | undefined>;
/**
 * Pause execution for specified period of time
 * @param ms Time to pause in milliseconds
 * @returns Promise
 */
export declare function sleep(ms: number): Promise<void>;
/**
 * Set a fields value based on the name of a lookup field
 * @param fieldToSet Logical name of field to set
 * @param lookupField Logical name of lookup field
 * @param form Form context
 * @returns True or false if value was set
 */
export declare function setValueFromLookupFieldName(fieldToSet: string, lookupField: string, form: Xrm.FormContext): boolean;
/**
 * Check if a user has a role
 * @param role Name or id of role
 *
 */
export declare function userHasRole(role: string): boolean;
