import type { _NSError } from "../Foundation/NSError.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _NSString } from "../Foundation/NSString.js";
import type { _LAAuthenticationRequirement } from "./LAAuthenticationRequirement.js";
import type { LARightState } from "./LARightState.js";
export declare class _LARight extends _NSObject {
    static alloc(): _LARight;
    static new(): _LARight;
    /**
     * @brief Constructs a right using default authorization requirements @discussion For authorizing a right with default requirements a user will be asked to authenticate using biometry or the device passcode. @return @c LARight instance
     */
    init(): _LARight;
    /**
     * @brief Constructs a right that will be granted only when the given @c LAAuthenticationRequirement is statisfied. @param requirement Requirement that needs to be satisfied to authorize the right @return @c LARight instance
     */
    initWithRequirement$(requirement: _LAAuthenticationRequirement): _LARight;
    /**
     * @brief Tries to authorize the right. @param localizedReason Localized explanation for the authorization. Appears in the UI presented to the user. @param handler Completion handler called after the authorization finishes. Returns an error when the authorization fails.
     */
    authorizeWithLocalizedReason$completion$(localizedReason: _NSString, handler: ((error: _NSError) => void) | null): void;
    /**
     * @brief Checks whether the client can eventually be granted the right. @param handler Completion handler. Returns @c nil if the right can be authorized or an error otherwise.
     */
    checkCanAuthorizeWithCompletion$(handler: ((error: _NSError) => void) | null): void;
    /**
     * @brief Invalidates a previously authorized right. @param handler Completion handler called after the right is deauthorized.
     */
    deauthorizeWithCompletion$(handler: () => void): void;
    /** @brief Provides the current authorization state of the @c LARight instance */
    state(): LARightState;
    /**
     * @brief An application-supplied integer that can be used to identify right intances. The default value is @c 0.
     */
    tag(): number;
    setTag$(value: number): void;
}
