import { Timestamp } from '../../../google/protobuf/timestamp'; import { Duration } from '../../../google/protobuf/duration'; import { Any } from '../../../google/protobuf/any'; import Long from 'long'; import { Coin } from '../../base/v1beta1/coin'; import _m0 from 'protobufjs/minimal'; export declare const protobufPackage = "cosmos.feegrant.v1beta1"; /** Since: cosmos-sdk 0.43 */ /** * 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 { $type: 'cosmos.feegrant.v1beta1.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?: Timestamp; } /** * PeriodicAllowance extends Allowance to allow for both a maximum cap, * as well as a limit per time period. */ export interface PeriodicAllowance { $type: 'cosmos.feegrant.v1beta1.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; } /** AllowedMsgAllowance creates allowance only for specified message types. */ export interface AllowedMsgAllowance { $type: 'cosmos.feegrant.v1beta1.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[]; } /** Grant is stored in the KVStore to record a grant with full context */ export interface Grant { $type: 'cosmos.feegrant.v1beta1.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; } export declare const BasicAllowance: { $type: "cosmos.feegrant.v1beta1.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 Long.Long; and: (other: string | number | Long.Long) => Long.Long; compare: (other: string | number | Long.Long) => number; comp: (other: string | number | Long.Long) => number; divide: (divisor: string | number | Long.Long) => Long.Long; div: (divisor: string | number | Long.Long) => Long.Long; equals: (other: string | number | Long.Long) => boolean; eq: (other: string | number | Long.Long) => boolean; getHighBits: () => number; getHighBitsUnsigned: () => number; getLowBits: () => number; getLowBitsUnsigned: () => number; getNumBitsAbs: () => number; greaterThan: (other: string | number | Long.Long) => boolean; gt: (other: string | number | Long.Long) => boolean; greaterThanOrEqual: (other: string | number | Long.Long) => boolean; gte: (other: string | number | Long.Long) => boolean; isEven: () => boolean; isNegative: () => boolean; isOdd: () => boolean; isPositive: () => boolean; isZero: () => boolean; lessThan: (other: string | number | Long.Long) => boolean; lt: (other: string | number | Long.Long) => boolean; lessThanOrEqual: (other: string | number | Long.Long) => boolean; lte: (other: string | number | Long.Long) => boolean; modulo: (other: string | number | Long.Long) => Long.Long; mod: (other: string | number | Long.Long) => Long.Long; multiply: (multiplier: string | number | Long.Long) => Long.Long; mul: (multiplier: string | number | Long.Long) => Long.Long; negate: () => Long.Long; neg: () => Long.Long; not: () => Long.Long; notEquals: (other: string | number | Long.Long) => boolean; neq: (other: string | number | Long.Long) => boolean; or: (other: string | number | Long.Long) => Long.Long; shiftLeft: (numBits: number | Long.Long) => Long.Long; shl: (numBits: number | Long.Long) => Long.Long; shiftRight: (numBits: number | Long.Long) => Long.Long; shr: (numBits: number | Long.Long) => Long.Long; shiftRightUnsigned: (numBits: number | Long.Long) => Long.Long; shru: (numBits: number | Long.Long) => Long.Long; subtract: (subtrahend: string | number | Long.Long) => Long.Long; sub: (subtrahend: string | number | Long.Long) => Long.Long; toInt: () => number; toNumber: () => number; toBytes: (le?: boolean | undefined) => number[]; toBytesLE: () => number[]; toBytesBE: () => number[]; toSigned: () => Long.Long; toString: (radix?: number | undefined) => string; toUnsigned: () => Long.Long; xor: (other: string | number | Long.Long) => Long.Long; } & { [K in Exclude]: never; }) | undefined; nanos?: number | undefined; } & { [K_1 in Exclude]: never; }) | undefined; spendLimit?: ({ denom?: string | undefined; amount?: string | undefined; }[] & ({ denom?: string | undefined; amount?: string | undefined; } & { denom?: string | undefined; amount?: string | undefined; } & { [K_2 in Exclude]: never; })[] & { [K_3 in Exclude]: never; }) | undefined; } & { [K_4 in Exclude]: never; }>(object: I): BasicAllowance; }; export declare const PeriodicAllowance: { $type: "cosmos.feegrant.v1beta1.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 Long.Long; and: (other: string | number | Long.Long) => Long.Long; compare: (other: string | number | Long.Long) => number; comp: (other: string | number | Long.Long) => number; divide: (divisor: string | number | Long.Long) => Long.Long; div: (divisor: string | number | Long.Long) => Long.Long; equals: (other: string | number | Long.Long) => boolean; eq: (other: string | number | Long.Long) => boolean; getHighBits: () => number; getHighBitsUnsigned: () => number; getLowBits: () => number; getLowBitsUnsigned: () => number; getNumBitsAbs: () => number; greaterThan: (other: string | number | Long.Long) => boolean; gt: (other: string | number | Long.Long) => boolean; greaterThanOrEqual: (other: string | number | Long.Long) => boolean; gte: (other: string | number | Long.Long) => boolean; isEven: () => boolean; isNegative: () => boolean; isOdd: () => boolean; isPositive: () => boolean; isZero: () => boolean; lessThan: (other: string | number | Long.Long) => boolean; lt: (other: string | number | Long.Long) => boolean; lessThanOrEqual: (other: string | number | Long.Long) => boolean; lte: (other: string | number | Long.Long) => boolean; modulo: (other: string | number | Long.Long) => Long.Long; mod: (other: string | number | Long.Long) => Long.Long; multiply: (multiplier: string | number | Long.Long) => Long.Long; mul: (multiplier: string | number | Long.Long) => Long.Long; negate: () => Long.Long; neg: () => Long.Long; not: () => Long.Long; notEquals: (other: string | number | Long.Long) => boolean; neq: (other: string | number | Long.Long) => boolean; or: (other: string | number | Long.Long) => Long.Long; shiftLeft: (numBits: number | Long.Long) => Long.Long; shl: (numBits: number | Long.Long) => Long.Long; shiftRight: (numBits: number | Long.Long) => Long.Long; shr: (numBits: number | Long.Long) => Long.Long; shiftRightUnsigned: (numBits: number | Long.Long) => Long.Long; shru: (numBits: number | Long.Long) => Long.Long; subtract: (subtrahend: string | number | Long.Long) => Long.Long; sub: (subtrahend: string | number | Long.Long) => Long.Long; toInt: () => number; toNumber: () => number; toBytes: (le?: boolean | undefined) => number[]; toBytesLE: () => number[]; toBytesBE: () => number[]; toSigned: () => Long.Long; toString: (radix?: number | undefined) => string; toUnsigned: () => Long.Long; xor: (other: string | number | Long.Long) => Long.Long; } & { [K in Exclude]: never; }) | undefined; nanos?: number | undefined; } & { [K_1 in Exclude]: never; }) | undefined; basic?: ({ expiration?: { seconds?: string | number | Long.Long | undefined; nanos?: number | undefined; } | undefined; spendLimit?: { denom?: string | undefined; amount?: string | undefined; }[] | undefined; } & { expiration?: ({ seconds?: string | number | Long.Long | undefined; nanos?: number | undefined; } & { seconds?: string | number | (Long.Long & { high: number; low: number; unsigned: boolean; add: (addend: string | number | Long.Long) => Long.Long; and: (other: string | number | Long.Long) => Long.Long; compare: (other: string | number | Long.Long) => number; comp: (other: string | number | Long.Long) => number; divide: (divisor: string | number | Long.Long) => Long.Long; div: (divisor: string | number | Long.Long) => Long.Long; equals: (other: string | number | Long.Long) => boolean; eq: (other: string | number | Long.Long) => boolean; getHighBits: () => number; getHighBitsUnsigned: () => number; getLowBits: () => number; getLowBitsUnsigned: () => number; getNumBitsAbs: () => number; greaterThan: (other: string | number | Long.Long) => boolean; gt: (other: string | number | Long.Long) => boolean; greaterThanOrEqual: (other: string | number | Long.Long) => boolean; gte: (other: string | number | Long.Long) => boolean; isEven: () => boolean; isNegative: () => boolean; isOdd: () => boolean; isPositive: () => boolean; isZero: () => boolean; lessThan: (other: string | number | Long.Long) => boolean; lt: (other: string | number | Long.Long) => boolean; lessThanOrEqual: (other: string | number | Long.Long) => boolean; lte: (other: string | number | Long.Long) => boolean; modulo: (other: string | number | Long.Long) => Long.Long; mod: (other: string | number | Long.Long) => Long.Long; multiply: (multiplier: string | number | Long.Long) => Long.Long; mul: (multiplier: string | number | Long.Long) => Long.Long; negate: () => Long.Long; neg: () => Long.Long; not: () => Long.Long; notEquals: (other: string | number | Long.Long) => boolean; neq: (other: string | number | Long.Long) => boolean; or: (other: string | number | Long.Long) => Long.Long; shiftLeft: (numBits: number | Long.Long) => Long.Long; shl: (numBits: number | Long.Long) => Long.Long; shiftRight: (numBits: number | Long.Long) => Long.Long; shr: (numBits: number | Long.Long) => Long.Long; shiftRightUnsigned: (numBits: number | Long.Long) => Long.Long; shru: (numBits: number | Long.Long) => Long.Long; subtract: (subtrahend: string | number | Long.Long) => Long.Long; sub: (subtrahend: string | number | Long.Long) => Long.Long; toInt: () => number; toNumber: () => number; toBytes: (le?: boolean | undefined) => number[]; toBytesLE: () => number[]; toBytesBE: () => number[]; toSigned: () => Long.Long; toString: (radix?: number | undefined) => string; toUnsigned: () => Long.Long; xor: (other: string | number | Long.Long) => Long.Long; } & { [K_2 in Exclude]: never; }) | undefined; nanos?: number | undefined; } & { [K_3 in Exclude]: never; }) | undefined; spendLimit?: ({ denom?: string | undefined; amount?: string | undefined; }[] & ({ denom?: string | undefined; amount?: string | undefined; } & { denom?: string | undefined; amount?: string | undefined; } & { [K_4 in Exclude]: never; })[] & { [K_5 in Exclude]: never; }) | undefined; } & { [K_6 in Exclude]: never; }) | undefined; periodSpendLimit?: ({ denom?: string | undefined; amount?: string | undefined; }[] & ({ denom?: string | undefined; amount?: string | undefined; } & { denom?: string | undefined; amount?: string | undefined; } & { [K_7 in Exclude]: never; })[] & { [K_8 in Exclude]: never; }) | undefined; periodCanSpend?: ({ denom?: string | undefined; amount?: string | undefined; }[] & ({ denom?: string | undefined; amount?: string | undefined; } & { denom?: string | undefined; amount?: string | undefined; } & { [K_9 in Exclude]: never; })[] & { [K_10 in Exclude]: never; }) | undefined; periodReset?: ({ seconds?: string | number | Long.Long | undefined; nanos?: number | undefined; } & { seconds?: string | number | (Long.Long & { high: number; low: number; unsigned: boolean; add: (addend: string | number | Long.Long) => Long.Long; and: (other: string | number | Long.Long) => Long.Long; compare: (other: string | number | Long.Long) => number; comp: (other: string | number | Long.Long) => number; divide: (divisor: string | number | Long.Long) => Long.Long; div: (divisor: string | number | Long.Long) => Long.Long; equals: (other: string | number | Long.Long) => boolean; eq: (other: string | number | Long.Long) => boolean; getHighBits: () => number; getHighBitsUnsigned: () => number; getLowBits: () => number; getLowBitsUnsigned: () => number; getNumBitsAbs: () => number; greaterThan: (other: string | number | Long.Long) => boolean; gt: (other: string | number | Long.Long) => boolean; greaterThanOrEqual: (other: string | number | Long.Long) => boolean; gte: (other: string | number | Long.Long) => boolean; isEven: () => boolean; isNegative: () => boolean; isOdd: () => boolean; isPositive: () => boolean; isZero: () => boolean; lessThan: (other: string | number | Long.Long) => boolean; lt: (other: string | number | Long.Long) => boolean; lessThanOrEqual: (other: string | number | Long.Long) => boolean; lte: (other: string | number | Long.Long) => boolean; modulo: (other: string | number | Long.Long) => Long.Long; mod: (other: string | number | Long.Long) => Long.Long; multiply: (multiplier: string | number | Long.Long) => Long.Long; mul: (multiplier: string | number | Long.Long) => Long.Long; negate: () => Long.Long; neg: () => Long.Long; not: () => Long.Long; notEquals: (other: string | number | Long.Long) => boolean; neq: (other: string | number | Long.Long) => boolean; or: (other: string | number | Long.Long) => Long.Long; shiftLeft: (numBits: number | Long.Long) => Long.Long; shl: (numBits: number | Long.Long) => Long.Long; shiftRight: (numBits: number | Long.Long) => Long.Long; shr: (numBits: number | Long.Long) => Long.Long; shiftRightUnsigned: (numBits: number | Long.Long) => Long.Long; shru: (numBits: number | Long.Long) => Long.Long; subtract: (subtrahend: string | number | Long.Long) => Long.Long; sub: (subtrahend: string | number | Long.Long) => Long.Long; toInt: () => number; toNumber: () => number; toBytes: (le?: boolean | undefined) => number[]; toBytesLE: () => number[]; toBytesBE: () => number[]; toSigned: () => Long.Long; toString: (radix?: number | undefined) => string; toUnsigned: () => Long.Long; xor: (other: string | number | Long.Long) => Long.Long; } & { [K_11 in Exclude]: never; }) | undefined; nanos?: number | undefined; } & { [K_12 in Exclude]: never; }) | undefined; } & { [K_13 in Exclude]: never; }>(object: I): PeriodicAllowance; }; export declare const AllowedMsgAllowance: { $type: "cosmos.feegrant.v1beta1.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[] & { [K_1 in Exclude]: never; }) | undefined; } & { [K_2 in Exclude]: never; }>(object: I): AllowedMsgAllowance; }; export declare const Grant: { $type: "cosmos.feegrant.v1beta1.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; } & { [K_1 in Exclude]: never; }>(object: I): Grant; }; declare type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined; export declare type DeepPartial = T extends Builtin ? T : T extends Long ? string | number | Long : T extends Array ? Array> : T extends ReadonlyArray ? ReadonlyArray> : T extends {} ? { [K in Exclude]?: DeepPartial; } : Partial; declare type KeysOfUnion = T extends T ? keyof T : never; export declare type Exact = P extends Builtin ? P : P & { [K in keyof P]: Exact; } & { [K in Exclude | '$type'>]: never; }; export {};