import type { IArcGISContext } from "../types/IArcGISContext";
import { Permission } from "./types/Permission";
import { IPermissionAccessResponse } from "./types/IPermissionAccessResponse";
/**
 * Type to allow either an entity or and entity and label to be
 * passed into `checkPermission`
 */
export type EntityOrOptions = Record<string, any> | {
    entity?: Record<string, any>;
    label: string;
};
/**
 * Check a permission against the system policies, and possibly an entity policy
 * Note: Calls that fail will automatically be logged to the console. Additional
 * context for the call can be passed via `.label` on the `entityOrOptions` argument.
 * @param permission
 * @param context
 * @param entityOrOptions
 * @returns
 */
export declare function checkPermission(permission: Permission, context: IArcGISContext, entityOrOptions?: EntityOrOptions): IPermissionAccessResponse;
