import { Account, AuthorizationRequest, Procedure } from "../../internal";
import { ProcedureAuthorization } from "../../types/internal";
/**
 * @hidden
 */
export interface ConsumeJoinIdentityAuthorizationParams {
    authRequest: AuthorizationRequest;
    accept: boolean;
}
export interface Storage {
    currentAccount: Account;
    calledByTarget: boolean;
}
/**
 * @hidden
 */
export declare function prepareConsumeJoinIdentityAuthorization(this: Procedure<ConsumeJoinIdentityAuthorizationParams, void, Storage>, args: ConsumeJoinIdentityAuthorizationParams): Promise<void>;
/**
 * @hidden
 *
 * - If the auth is being accepted, we check that the caller is the target
 * - If the auth is being rejected, we check that the caller is either the target or the issuer
 */
export declare function getAuthorization(this: Procedure<ConsumeJoinIdentityAuthorizationParams, void, Storage>, { authRequest, accept }: ConsumeJoinIdentityAuthorizationParams): Promise<ProcedureAuthorization>;
/**
 * @hidden
 */
export declare function prepareStorage(this: Procedure<ConsumeJoinIdentityAuthorizationParams, void, Storage>, { authRequest: { target } }: ConsumeJoinIdentityAuthorizationParams): Promise<Storage>;
/**
 * @hidden
 */
export declare const consumeJoinIdentityAuthorization: () => Procedure<ConsumeJoinIdentityAuthorizationParams, void, Storage>;
//# sourceMappingURL=consumeJoinIdentityAuthorization.d.ts.map