import { Coin, CoinSDKType } from "../../base/v1beta1/coin"; import { Timestamp, TimestampSDKType } from "../../../google/protobuf/timestamp"; import { Duration, DurationSDKType } from "../../../google/protobuf/duration"; import { Any, AnySDKType } from "../../../google/protobuf/any"; import * as _m0 from "protobufjs/minimal"; export declare const protobufPackage = "cosmos.feegrant.v1beta1"; /** * BasicAllowance implements Allowance with a one-time grant of coins * that optionally expires. The grantee can use up to SpendLimit to cover fees. */ export interface BasicAllowance { /** * spend_limit specifies the maximum amount of coins that can be spent * by this allowance and will be updated as coins 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?: Timestamp; } /** * BasicAllowance implements Allowance with a one-time grant of coins * that optionally expires. The grantee can use up to SpendLimit to cover fees. */ export interface BasicAllowanceSDKType { spend_limit: CoinSDKType[]; expiration?: TimestampSDKType; } /** * 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?: Timestamp; } /** * PeriodicAllowance extends Allowance to allow for both a maximum cap, * as well as a limit per time period. */ export interface PeriodicAllowanceSDKType { basic?: BasicAllowanceSDKType; period?: DurationSDKType; period_spend_limit: CoinSDKType[]; period_can_spend: CoinSDKType[]; period_reset?: TimestampSDKType; } /** AllowedMsgAllowance creates allowance only for specified message types. */ export interface AllowedMsgAllowance { /** allowance can be any of basic and periodic 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?: AnySDKType; 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, periodic, allowed fee allowance. */ allowance?: Any; } /** Grant is stored in the KVStore to record a grant with full context */ export interface GrantSDKType { granter: string; grantee: string; allowance?: AnySDKType; } export declare const BasicAllowance: { encode(message: BasicAllowance, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): BasicAllowance; fromJSON(object: any): BasicAllowance; toJSON(message: BasicAllowance): unknown; fromPartial, never>)[] & Record, never>) | undefined; expiration?: ({ seconds?: string | number | import("long").Long | undefined; nanos?: number | undefined; } & { seconds?: string | number | (import("long").Long & { high: number; low: number; unsigned: boolean; add: (addend: string | number | import("long").Long) => import("long").Long; and: (other: string | number | import("long").Long) => import("long").Long; compare: (other: string | number | import("long").Long) => number; comp: (other: string | number | import("long").Long) => number; divide: (divisor: string | number | import("long").Long) => import("long").Long; div: (divisor: string | number | import("long").Long) => import("long").Long; equals: (other: string | number | import("long").Long) => boolean; eq: (other: string | number | import("long").Long) => boolean; getHighBits: () => number; getHighBitsUnsigned: () => number; getLowBits: () => number; getLowBitsUnsigned: () => number; getNumBitsAbs: () => number; greaterThan: (other: string | number | import("long").Long) => boolean; gt: (other: string | number | import("long").Long) => boolean; greaterThanOrEqual: (other: string | number | import("long").Long) => boolean; gte: (other: string | number | import("long").Long) => boolean; isEven: () => boolean; isNegative: () => boolean; isOdd: () => boolean; isPositive: () => boolean; isZero: () => boolean; lessThan: (other: string | number | import("long").Long) => boolean; lt: (other: string | number | import("long").Long) => boolean; lessThanOrEqual: (other: string | number | import("long").Long) => boolean; lte: (other: string | number | import("long").Long) => boolean; modulo: (other: string | number | import("long").Long) => import("long").Long; mod: (other: string | number | import("long").Long) => import("long").Long; multiply: (multiplier: string | number | import("long").Long) => import("long").Long; mul: (multiplier: string | number | import("long").Long) => import("long").Long; negate: () => import("long").Long; neg: () => import("long").Long; not: () => import("long").Long; notEquals: (other: string | number | import("long").Long) => boolean; neq: (other: string | number | import("long").Long) => boolean; or: (other: string | number | import("long").Long) => import("long").Long; shiftLeft: (numBits: number | import("long").Long) => import("long").Long; shl: (numBits: number | import("long").Long) => import("long").Long; shiftRight: (numBits: number | import("long").Long) => import("long").Long; shr: (numBits: number | import("long").Long) => import("long").Long; shiftRightUnsigned: (numBits: number | import("long").Long) => import("long").Long; shru: (numBits: number | import("long").Long) => import("long").Long; subtract: (subtrahend: string | number | import("long").Long) => import("long").Long; sub: (subtrahend: string | number | import("long").Long) => import("long").Long; toInt: () => number; toNumber: () => number; toBytes: (le?: boolean | undefined) => number[]; toBytesLE: () => number[]; toBytesBE: () => number[]; toSigned: () => import("long").Long; toString: (radix?: number | undefined) => string; toUnsigned: () => import("long").Long; xor: (other: string | number | import("long").Long) => import("long").Long; } & Record, never>) | undefined; nanos?: number | undefined; } & Record, never>) | undefined; } & Record, never>>(object: I): BasicAllowance; fromSDK(object: BasicAllowanceSDKType): BasicAllowance; toSDK(message: BasicAllowance): BasicAllowanceSDKType; }; export declare const PeriodicAllowance: { encode(message: PeriodicAllowance, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): PeriodicAllowance; fromJSON(object: any): PeriodicAllowance; toJSON(message: PeriodicAllowance): unknown; fromPartial, never>)[] & Record, never>) | undefined; expiration?: ({ seconds?: string | number | import("long").Long | undefined; nanos?: number | undefined; } & { seconds?: string | number | (import("long").Long & { high: number; low: number; unsigned: boolean; add: (addend: string | number | import("long").Long) => import("long").Long; and: (other: string | number | import("long").Long) => import("long").Long; compare: (other: string | number | import("long").Long) => number; comp: (other: string | number | import("long").Long) => number; divide: (divisor: string | number | import("long").Long) => import("long").Long; div: (divisor: string | number | import("long").Long) => import("long").Long; equals: (other: string | number | import("long").Long) => boolean; eq: (other: string | number | import("long").Long) => boolean; getHighBits: () => number; getHighBitsUnsigned: () => number; getLowBits: () => number; getLowBitsUnsigned: () => number; getNumBitsAbs: () => number; greaterThan: (other: string | number | import("long").Long) => boolean; gt: (other: string | number | import("long").Long) => boolean; greaterThanOrEqual: (other: string | number | import("long").Long) => boolean; gte: (other: string | number | import("long").Long) => boolean; isEven: () => boolean; isNegative: () => boolean; isOdd: () => boolean; isPositive: () => boolean; isZero: () => boolean; lessThan: (other: string | number | import("long").Long) => boolean; lt: (other: string | number | import("long").Long) => boolean; lessThanOrEqual: (other: string | number | import("long").Long) => boolean; lte: (other: string | number | import("long").Long) => boolean; modulo: (other: string | number | import("long").Long) => import("long").Long; mod: (other: string | number | import("long").Long) => import("long").Long; multiply: (multiplier: string | number | import("long").Long) => import("long").Long; mul: (multiplier: string | number | import("long").Long) => import("long").Long; negate: () => import("long").Long; neg: () => import("long").Long; not: () => import("long").Long; notEquals: (other: string | number | import("long").Long) => boolean; neq: (other: string | number | import("long").Long) => boolean; or: (other: string | number | import("long").Long) => import("long").Long; shiftLeft: (numBits: number | import("long").Long) => import("long").Long; shl: (numBits: number | import("long").Long) => import("long").Long; shiftRight: (numBits: number | import("long").Long) => import("long").Long; shr: (numBits: number | import("long").Long) => import("long").Long; shiftRightUnsigned: (numBits: number | import("long").Long) => import("long").Long; shru: (numBits: number | import("long").Long) => import("long").Long; subtract: (subtrahend: string | number | import("long").Long) => import("long").Long; sub: (subtrahend: string | number | import("long").Long) => import("long").Long; toInt: () => number; toNumber: () => number; toBytes: (le?: boolean | undefined) => number[]; toBytesLE: () => number[]; toBytesBE: () => number[]; toSigned: () => import("long").Long; toString: (radix?: number | undefined) => string; toUnsigned: () => import("long").Long; xor: (other: string | number | import("long").Long) => import("long").Long; } & Record, never>) | undefined; nanos?: number | undefined; } & Record, never>) | undefined; } & Record, never>) | undefined; period?: ({ seconds?: string | number | import("long").Long | undefined; nanos?: number | undefined; } & { seconds?: string | number | (import("long").Long & { high: number; low: number; unsigned: boolean; add: (addend: string | number | import("long").Long) => import("long").Long; and: (other: string | number | import("long").Long) => import("long").Long; compare: (other: string | number | import("long").Long) => number; comp: (other: string | number | import("long").Long) => number; divide: (divisor: string | number | import("long").Long) => import("long").Long; div: (divisor: string | number | import("long").Long) => import("long").Long; equals: (other: string | number | import("long").Long) => boolean; eq: (other: string | number | import("long").Long) => boolean; getHighBits: () => number; getHighBitsUnsigned: () => number; getLowBits: () => number; getLowBitsUnsigned: () => number; getNumBitsAbs: () => number; greaterThan: (other: string | number | import("long").Long) => boolean; gt: (other: string | number | import("long").Long) => boolean; greaterThanOrEqual: (other: string | number | import("long").Long) => boolean; gte: (other: string | number | import("long").Long) => boolean; isEven: () => boolean; isNegative: () => boolean; isOdd: () => boolean; isPositive: () => boolean; isZero: () => boolean; lessThan: (other: string | number | import("long").Long) => boolean; lt: (other: string | number | import("long").Long) => boolean; lessThanOrEqual: (other: string | number | import("long").Long) => boolean; lte: (other: string | number | import("long").Long) => boolean; modulo: (other: string | number | import("long").Long) => import("long").Long; mod: (other: string | number | import("long").Long) => import("long").Long; multiply: (multiplier: string | number | import("long").Long) => import("long").Long; mul: (multiplier: string | number | import("long").Long) => import("long").Long; negate: () => import("long").Long; neg: () => import("long").Long; not: () => import("long").Long; notEquals: (other: string | number | import("long").Long) => boolean; neq: (other: string | number | import("long").Long) => boolean; or: (other: string | number | import("long").Long) => import("long").Long; shiftLeft: (numBits: number | import("long").Long) => import("long").Long; shl: (numBits: number | import("long").Long) => import("long").Long; shiftRight: (numBits: number | import("long").Long) => import("long").Long; shr: (numBits: number | import("long").Long) => import("long").Long; shiftRightUnsigned: (numBits: number | import("long").Long) => import("long").Long; shru: (numBits: number | import("long").Long) => import("long").Long; subtract: (subtrahend: string | number | import("long").Long) => import("long").Long; sub: (subtrahend: string | number | import("long").Long) => import("long").Long; toInt: () => number; toNumber: () => number; toBytes: (le?: boolean | undefined) => number[]; toBytesLE: () => number[]; toBytesBE: () => number[]; toSigned: () => import("long").Long; toString: (radix?: number | undefined) => string; toUnsigned: () => import("long").Long; xor: (other: string | number | import("long").Long) => import("long").Long; } & Record, never>) | undefined; nanos?: number | undefined; } & Record, never>) | undefined; periodSpendLimit?: ({ denom?: string | undefined; amount?: string | undefined; }[] & ({ denom?: string | undefined; amount?: string | undefined; } & { denom?: string | undefined; amount?: string | undefined; } & Record, never>)[] & Record, never>) | undefined; periodCanSpend?: ({ denom?: string | undefined; amount?: string | undefined; }[] & ({ denom?: string | undefined; amount?: string | undefined; } & { denom?: string | undefined; amount?: string | undefined; } & Record, never>)[] & Record, never>) | undefined; periodReset?: ({ seconds?: string | number | import("long").Long | undefined; nanos?: number | undefined; } & { seconds?: string | number | (import("long").Long & { high: number; low: number; unsigned: boolean; add: (addend: string | number | import("long").Long) => import("long").Long; and: (other: string | number | import("long").Long) => import("long").Long; compare: (other: string | number | import("long").Long) => number; comp: (other: string | number | import("long").Long) => number; divide: (divisor: string | number | import("long").Long) => import("long").Long; div: (divisor: string | number | import("long").Long) => import("long").Long; equals: (other: string | number | import("long").Long) => boolean; eq: (other: string | number | import("long").Long) => boolean; getHighBits: () => number; getHighBitsUnsigned: () => number; getLowBits: () => number; getLowBitsUnsigned: () => number; getNumBitsAbs: () => number; greaterThan: (other: string | number | import("long").Long) => boolean; gt: (other: string | number | import("long").Long) => boolean; greaterThanOrEqual: (other: string | number | import("long").Long) => boolean; gte: (other: string | number | import("long").Long) => boolean; isEven: () => boolean; isNegative: () => boolean; isOdd: () => boolean; isPositive: () => boolean; isZero: () => boolean; lessThan: (other: string | number | import("long").Long) => boolean; lt: (other: string | number | import("long").Long) => boolean; lessThanOrEqual: (other: string | number | import("long").Long) => boolean; lte: (other: string | number | import("long").Long) => boolean; modulo: (other: string | number | import("long").Long) => import("long").Long; mod: (other: string | number | import("long").Long) => import("long").Long; multiply: (multiplier: string | number | import("long").Long) => import("long").Long; mul: (multiplier: string | number | import("long").Long) => import("long").Long; negate: () => import("long").Long; neg: () => import("long").Long; not: () => import("long").Long; notEquals: (other: string | number | import("long").Long) => boolean; neq: (other: string | number | import("long").Long) => boolean; or: (other: string | number | import("long").Long) => import("long").Long; shiftLeft: (numBits: number | import("long").Long) => import("long").Long; shl: (numBits: number | import("long").Long) => import("long").Long; shiftRight: (numBits: number | import("long").Long) => import("long").Long; shr: (numBits: number | import("long").Long) => import("long").Long; shiftRightUnsigned: (numBits: number | import("long").Long) => import("long").Long; shru: (numBits: number | import("long").Long) => import("long").Long; subtract: (subtrahend: string | number | import("long").Long) => import("long").Long; sub: (subtrahend: string | number | import("long").Long) => import("long").Long; toInt: () => number; toNumber: () => number; toBytes: (le?: boolean | undefined) => number[]; toBytesLE: () => number[]; toBytesBE: () => number[]; toSigned: () => import("long").Long; toString: (radix?: number | undefined) => string; toUnsigned: () => import("long").Long; xor: (other: string | number | import("long").Long) => import("long").Long; } & Record, never>) | undefined; nanos?: number | undefined; } & Record, never>) | undefined; } & Record, never>>(object: I): PeriodicAllowance; fromSDK(object: PeriodicAllowanceSDKType): PeriodicAllowance; toSDK(message: PeriodicAllowance): PeriodicAllowanceSDKType; }; export declare const AllowedMsgAllowance: { encode(message: AllowedMsgAllowance, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): AllowedMsgAllowance; fromJSON(object: any): AllowedMsgAllowance; toJSON(message: AllowedMsgAllowance): unknown; fromPartial, never>) | undefined; allowedMessages?: (string[] & string[] & Record, never>) | undefined; } & Record, never>>(object: I): AllowedMsgAllowance; fromSDK(object: AllowedMsgAllowanceSDKType): AllowedMsgAllowance; toSDK(message: AllowedMsgAllowance): AllowedMsgAllowanceSDKType; }; export declare const Grant: { encode(message: Grant, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): Grant; fromJSON(object: any): Grant; toJSON(message: Grant): unknown; fromPartial, never>) | undefined; } & Record, never>>(object: I): Grant; fromSDK(object: GrantSDKType): Grant; toSDK(message: Grant): GrantSDKType; };