import { IAuthorizationSettingsUnion, AuthorizationType } from './Authorization.js';
import { RequestAuthorization as LegacyAuthorization } from './legacy/request/ArcRequest.js';
export declare const Kind = "Core#RequestAuthorization";
/**
 * Authorization configuration for the request.
 */
export interface IRequestAuthorization {
    kind: typeof Kind;
    /**
     * Authorization configuration
     */
    config: IAuthorizationSettingsUnion;
    /**
     * The name of the authorization
     */
    type: AuthorizationType;
    /**
     * Whether the authorization is enabled.
     */
    enabled: boolean;
    /**
     * Whether the authorization is reported to be valid.
     * The application should take action when the authorization is invalid but possibly allow the request.
     */
    valid: boolean;
}
export declare class RequestAuthorization {
    kind: string;
    /**
     * Authorization configuration
     */
    config?: IAuthorizationSettingsUnion;
    /**
     * The name of the authorization
     */
    type?: AuthorizationType;
    /**
     * Whether the authorization is enabled.
     */
    enabled?: boolean;
    /**
     * Whether the authorization is reported to be valid.
     * The application should take action when the authorization is invalid but possibly allow the request.
     */
    valid?: boolean;
    static fromTypedConfig(type: AuthorizationType, config: IAuthorizationSettingsUnion, valid?: boolean): RequestAuthorization;
    static fromLegacy(info: LegacyAuthorization): RequestAuthorization;
    /**
     * @param input The provider definition used to restore the state.
     */
    constructor(input?: string | IRequestAuthorization);
    /**
     * Creates a new request authorization clearing anything that is so far defined.
     */
    new(init: IRequestAuthorization): void;
    toJSON(): IRequestAuthorization;
}
//# sourceMappingURL=RequestAuthorization.d.ts.map