import { Coin, CoinSDKType } from "../../base/v1beta1/coin"; import { Duration, DurationSDKType } from "../../../google/protobuf/duration"; import { Any, AnySDKType } from "../../../google/protobuf/any"; import * as _m0 from "protobufjs/minimal"; import { DeepPartial } from "@osmonauts/helpers"; /** * BasicAllowance implements Allowance with a one-time grant of tokens * that optionally expires. The grantee can use up to SpendLimit to cover fees. */ export interface BasicAllowance { /** * spend_limit specifies the maximum amount of tokens that can be spent * by this allowance and will be updated as tokens are spent. If it is * empty, there is no spend limit and any amount of coins can be spent. */ spendLimit: Coin[]; /** expiration specifies an optional time when this allowance expires */ expiration: Date; } /** * BasicAllowance implements Allowance with a one-time grant of tokens * that optionally expires. The grantee can use up to SpendLimit to cover fees. */ export interface BasicAllowanceSDKType { /** * spend_limit specifies the maximum amount of tokens that can be spent * by this allowance and will be updated as tokens are spent. If it is * empty, there is no spend limit and any amount of coins can be spent. */ spend_limit: CoinSDKType[]; /** expiration specifies an optional time when this allowance expires */ expiration: Date; } /** * PeriodicAllowance extends Allowance to allow for both a maximum cap, * as well as a limit per time period. */ export interface PeriodicAllowance { /** basic specifies a struct of `BasicAllowance` */ basic: BasicAllowance; /** * period specifies the time duration in which period_spend_limit coins can * be spent before that allowance is reset */ period: Duration; /** * period_spend_limit specifies the maximum number of coins that can be spent * in the period */ periodSpendLimit: Coin[]; /** period_can_spend is the number of coins left to be spent before the period_reset time */ periodCanSpend: Coin[]; /** * period_reset is the time at which this period resets and a new one begins, * it is calculated from the start time of the first transaction after the * last period ended */ periodReset: Date; } /** * PeriodicAllowance extends Allowance to allow for both a maximum cap, * as well as a limit per time period. */ export interface PeriodicAllowanceSDKType { /** basic specifies a struct of `BasicAllowance` */ basic: BasicAllowanceSDKType; /** * period specifies the time duration in which period_spend_limit coins can * be spent before that allowance is reset */ period: DurationSDKType; /** * period_spend_limit specifies the maximum number of coins that can be spent * in the period */ period_spend_limit: CoinSDKType[]; /** period_can_spend is the number of coins left to be spent before the period_reset time */ period_can_spend: CoinSDKType[]; /** * period_reset is the time at which this period resets and a new one begins, * it is calculated from the start time of the first transaction after the * last period ended */ period_reset: Date; } /** AllowedMsgAllowance creates allowance only for specified message types. */ export interface AllowedMsgAllowance { /** allowance can be any of basic and filtered fee allowance. */ allowance: Any; /** allowed_messages are the messages for which the grantee has the access. */ allowedMessages: string[]; } /** AllowedMsgAllowance creates allowance only for specified message types. */ export interface AllowedMsgAllowanceSDKType { /** allowance can be any of basic and filtered fee allowance. */ allowance: AnySDKType; /** allowed_messages are the messages for which the grantee has the access. */ allowed_messages: string[]; } /** Grant is stored in the KVStore to record a grant with full context */ export interface Grant { /** granter is the address of the user granting an allowance of their funds. */ granter: string; /** grantee is the address of the user being granted an allowance of another user's funds. */ grantee: string; /** allowance can be any of basic and filtered fee allowance. */ allowance: Any; } /** Grant is stored in the KVStore to record a grant with full context */ export interface GrantSDKType { /** granter is the address of the user granting an allowance of their funds. */ granter: string; /** grantee is the address of the user being granted an allowance of another user's funds. */ grantee: string; /** allowance can be any of basic and filtered fee allowance. */ allowance: AnySDKType; } export declare const BasicAllowance: { encode(message: BasicAllowance, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): BasicAllowance; fromPartial(object: DeepPartial): BasicAllowance; }; export declare const PeriodicAllowance: { encode(message: PeriodicAllowance, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): PeriodicAllowance; fromPartial(object: DeepPartial): PeriodicAllowance; }; export declare const AllowedMsgAllowance: { encode(message: AllowedMsgAllowance, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): AllowedMsgAllowance; fromPartial(object: DeepPartial): AllowedMsgAllowance; }; export declare const Grant: { encode(message: Grant, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): Grant; fromPartial(object: DeepPartial): Grant; };