import { CustomPermissionGroup, Identity, KnownPermissionGroup, Procedure, SecurityToken } from "../../internal";
import { TransactionPermissions, TxGroup } from "../../types";
import { ProcedureAuthorization } from "../../types/internal";
export interface InviteExternalAgentParams {
    target: string | Identity;
    permissions: KnownPermissionGroup | CustomPermissionGroup | {
        transactions: TransactionPermissions;
    } | {
        transactionGroups: TxGroup[];
    };
    /**
     * date at which the authorization request for invitation expires (optional)
     *
     * @note if expiry date is not set, the invitation will never expire
     */
    expiry?: Date;
}
/**
 * @hidden
 */
export declare type Params = InviteExternalAgentParams & {
    ticker: string;
};
/**
 * @hidden
 */
export interface Storage {
    token: SecurityToken;
}
/**
 * @hidden
 */
export declare function prepareInviteExternalAgent(this: Procedure<Params, void, Storage>, args: Params): Promise<void>;
/**
 * @hidden
 */
export declare function getAuthorization(this: Procedure<Params, void, Storage>): ProcedureAuthorization;
/**
 * @hidden
 */
export declare function prepareStorage(this: Procedure<Params, void, Storage>, { ticker }: Params): Storage;
/**
 * @hidden
 */
export declare const inviteExternalAgent: () => Procedure<Params, void, Storage>;
//# sourceMappingURL=inviteExternalAgent.d.ts.map