/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import type {
  BaseContract,
  BigNumber,
  BigNumberish,
  BytesLike,
  CallOverrides,
  ContractTransaction,
  Overrides,
  PopulatedTransaction,
  Signer,
  utils,
} from "ethers";
import type {
  FunctionFragment,
  Result,
  EventFragment,
} from "@ethersproject/abi";
import type { Listener, Provider } from "@ethersproject/providers";
import type {
  TypedEventFilter,
  TypedEvent,
  TypedListener,
  OnEvent,
  PromiseOrValue,
} from "../../common";

export interface DssVestTransferrableInterface extends utils.Interface {
  functions: {
    "TWENTY_YEARS()": FunctionFragment;
    "accrued(uint256)": FunctionFragment;
    "awards(uint256)": FunctionFragment;
    "bgn(uint256)": FunctionFragment;
    "cap()": FunctionFragment;
    "clf(uint256)": FunctionFragment;
    "create(address,uint256,uint256,uint256,uint256,address)": FunctionFragment;
    "czar()": FunctionFragment;
    "deny(address)": FunctionFragment;
    "file(bytes32,uint256)": FunctionFragment;
    "fin(uint256)": FunctionFragment;
    "gem()": FunctionFragment;
    "ids()": FunctionFragment;
    "isTrustedForwarder(address)": FunctionFragment;
    "mgr(uint256)": FunctionFragment;
    "move(uint256,address)": FunctionFragment;
    "rely(address)": FunctionFragment;
    "res(uint256)": FunctionFragment;
    "restrict(uint256)": FunctionFragment;
    "rxd(uint256)": FunctionFragment;
    "tot(uint256)": FunctionFragment;
    "unpaid(uint256)": FunctionFragment;
    "unrestrict(uint256)": FunctionFragment;
    "usr(uint256)": FunctionFragment;
    "valid(uint256)": FunctionFragment;
    "vest(uint256)": FunctionFragment;
    "vest(uint256,uint256)": FunctionFragment;
    "wards(address)": FunctionFragment;
    "yank(uint256)": FunctionFragment;
    "yank(uint256,uint256)": FunctionFragment;
  };

  getFunction(
    nameOrSignatureOrTopic:
      | "TWENTY_YEARS"
      | "accrued"
      | "awards"
      | "bgn"
      | "cap"
      | "clf"
      | "create"
      | "czar"
      | "deny"
      | "file"
      | "fin"
      | "gem"
      | "ids"
      | "isTrustedForwarder"
      | "mgr"
      | "move"
      | "rely"
      | "res"
      | "restrict"
      | "rxd"
      | "tot"
      | "unpaid"
      | "unrestrict"
      | "usr"
      | "valid"
      | "vest(uint256)"
      | "vest(uint256,uint256)"
      | "wards"
      | "yank(uint256)"
      | "yank(uint256,uint256)"
  ): FunctionFragment;

  encodeFunctionData(
    functionFragment: "TWENTY_YEARS",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "accrued",
    values: [PromiseOrValue<BigNumberish>]
  ): string;
  encodeFunctionData(
    functionFragment: "awards",
    values: [PromiseOrValue<BigNumberish>]
  ): string;
  encodeFunctionData(
    functionFragment: "bgn",
    values: [PromiseOrValue<BigNumberish>]
  ): string;
  encodeFunctionData(functionFragment: "cap", values?: undefined): string;
  encodeFunctionData(
    functionFragment: "clf",
    values: [PromiseOrValue<BigNumberish>]
  ): string;
  encodeFunctionData(
    functionFragment: "create",
    values: [
      PromiseOrValue<string>,
      PromiseOrValue<BigNumberish>,
      PromiseOrValue<BigNumberish>,
      PromiseOrValue<BigNumberish>,
      PromiseOrValue<BigNumberish>,
      PromiseOrValue<string>
    ]
  ): string;
  encodeFunctionData(functionFragment: "czar", values?: undefined): string;
  encodeFunctionData(
    functionFragment: "deny",
    values: [PromiseOrValue<string>]
  ): string;
  encodeFunctionData(
    functionFragment: "file",
    values: [PromiseOrValue<BytesLike>, PromiseOrValue<BigNumberish>]
  ): string;
  encodeFunctionData(
    functionFragment: "fin",
    values: [PromiseOrValue<BigNumberish>]
  ): string;
  encodeFunctionData(functionFragment: "gem", values?: undefined): string;
  encodeFunctionData(functionFragment: "ids", values?: undefined): string;
  encodeFunctionData(
    functionFragment: "isTrustedForwarder",
    values: [PromiseOrValue<string>]
  ): string;
  encodeFunctionData(
    functionFragment: "mgr",
    values: [PromiseOrValue<BigNumberish>]
  ): string;
  encodeFunctionData(
    functionFragment: "move",
    values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>]
  ): string;
  encodeFunctionData(
    functionFragment: "rely",
    values: [PromiseOrValue<string>]
  ): string;
  encodeFunctionData(
    functionFragment: "res",
    values: [PromiseOrValue<BigNumberish>]
  ): string;
  encodeFunctionData(
    functionFragment: "restrict",
    values: [PromiseOrValue<BigNumberish>]
  ): string;
  encodeFunctionData(
    functionFragment: "rxd",
    values: [PromiseOrValue<BigNumberish>]
  ): string;
  encodeFunctionData(
    functionFragment: "tot",
    values: [PromiseOrValue<BigNumberish>]
  ): string;
  encodeFunctionData(
    functionFragment: "unpaid",
    values: [PromiseOrValue<BigNumberish>]
  ): string;
  encodeFunctionData(
    functionFragment: "unrestrict",
    values: [PromiseOrValue<BigNumberish>]
  ): string;
  encodeFunctionData(
    functionFragment: "usr",
    values: [PromiseOrValue<BigNumberish>]
  ): string;
  encodeFunctionData(
    functionFragment: "valid",
    values: [PromiseOrValue<BigNumberish>]
  ): string;
  encodeFunctionData(
    functionFragment: "vest(uint256)",
    values: [PromiseOrValue<BigNumberish>]
  ): string;
  encodeFunctionData(
    functionFragment: "vest(uint256,uint256)",
    values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]
  ): string;
  encodeFunctionData(
    functionFragment: "wards",
    values: [PromiseOrValue<string>]
  ): string;
  encodeFunctionData(
    functionFragment: "yank(uint256)",
    values: [PromiseOrValue<BigNumberish>]
  ): string;
  encodeFunctionData(
    functionFragment: "yank(uint256,uint256)",
    values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]
  ): string;

  decodeFunctionResult(
    functionFragment: "TWENTY_YEARS",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "accrued", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "awards", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "bgn", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "cap", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "clf", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "create", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "czar", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "deny", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "file", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "fin", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "gem", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "ids", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "isTrustedForwarder",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "mgr", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "move", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "rely", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "res", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "restrict", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "rxd", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "tot", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "unpaid", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "unrestrict", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "usr", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "valid", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "vest(uint256)",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "vest(uint256,uint256)",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "wards", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "yank(uint256)",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "yank(uint256,uint256)",
    data: BytesLike
  ): Result;

  events: {
    "Deny(address)": EventFragment;
    "File(bytes32,uint256)": EventFragment;
    "Init(uint256,address)": EventFragment;
    "Move(uint256,address)": EventFragment;
    "Rely(address)": EventFragment;
    "Restrict(uint256)": EventFragment;
    "Unrestrict(uint256)": EventFragment;
    "Vest(uint256,uint256)": EventFragment;
    "Yank(uint256,uint256)": EventFragment;
  };

  getEvent(nameOrSignatureOrTopic: "Deny"): EventFragment;
  getEvent(nameOrSignatureOrTopic: "File"): EventFragment;
  getEvent(nameOrSignatureOrTopic: "Init"): EventFragment;
  getEvent(nameOrSignatureOrTopic: "Move"): EventFragment;
  getEvent(nameOrSignatureOrTopic: "Rely"): EventFragment;
  getEvent(nameOrSignatureOrTopic: "Restrict"): EventFragment;
  getEvent(nameOrSignatureOrTopic: "Unrestrict"): EventFragment;
  getEvent(nameOrSignatureOrTopic: "Vest"): EventFragment;
  getEvent(nameOrSignatureOrTopic: "Yank"): EventFragment;
}

export interface DenyEventObject {
  usr: string;
}
export type DenyEvent = TypedEvent<[string], DenyEventObject>;

export type DenyEventFilter = TypedEventFilter<DenyEvent>;

export interface FileEventObject {
  what: string;
  data: BigNumber;
}
export type FileEvent = TypedEvent<[string, BigNumber], FileEventObject>;

export type FileEventFilter = TypedEventFilter<FileEvent>;

export interface InitEventObject {
  id: BigNumber;
  usr: string;
}
export type InitEvent = TypedEvent<[BigNumber, string], InitEventObject>;

export type InitEventFilter = TypedEventFilter<InitEvent>;

export interface MoveEventObject {
  id: BigNumber;
  dst: string;
}
export type MoveEvent = TypedEvent<[BigNumber, string], MoveEventObject>;

export type MoveEventFilter = TypedEventFilter<MoveEvent>;

export interface RelyEventObject {
  usr: string;
}
export type RelyEvent = TypedEvent<[string], RelyEventObject>;

export type RelyEventFilter = TypedEventFilter<RelyEvent>;

export interface RestrictEventObject {
  id: BigNumber;
}
export type RestrictEvent = TypedEvent<[BigNumber], RestrictEventObject>;

export type RestrictEventFilter = TypedEventFilter<RestrictEvent>;

export interface UnrestrictEventObject {
  id: BigNumber;
}
export type UnrestrictEvent = TypedEvent<[BigNumber], UnrestrictEventObject>;

export type UnrestrictEventFilter = TypedEventFilter<UnrestrictEvent>;

export interface VestEventObject {
  id: BigNumber;
  amt: BigNumber;
}
export type VestEvent = TypedEvent<[BigNumber, BigNumber], VestEventObject>;

export type VestEventFilter = TypedEventFilter<VestEvent>;

export interface YankEventObject {
  id: BigNumber;
  end: BigNumber;
}
export type YankEvent = TypedEvent<[BigNumber, BigNumber], YankEventObject>;

export type YankEventFilter = TypedEventFilter<YankEvent>;

export interface DssVestTransferrable extends BaseContract {
  connect(signerOrProvider: Signer | Provider | string): this;
  attach(addressOrName: string): this;
  deployed(): Promise<this>;

  interface: DssVestTransferrableInterface;

  queryFilter<TEvent extends TypedEvent>(
    event: TypedEventFilter<TEvent>,
    fromBlockOrBlockhash?: string | number | undefined,
    toBlock?: string | number | undefined
  ): Promise<Array<TEvent>>;

  listeners<TEvent extends TypedEvent>(
    eventFilter?: TypedEventFilter<TEvent>
  ): Array<TypedListener<TEvent>>;
  listeners(eventName?: string): Array<Listener>;
  removeAllListeners<TEvent extends TypedEvent>(
    eventFilter: TypedEventFilter<TEvent>
  ): this;
  removeAllListeners(eventName?: string): this;
  off: OnEvent<this>;
  on: OnEvent<this>;
  once: OnEvent<this>;
  removeListener: OnEvent<this>;

  functions: {
    TWENTY_YEARS(overrides?: CallOverrides): Promise<[BigNumber]>;

    accrued(
      _id: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides
    ): Promise<[BigNumber] & { amt: BigNumber }>;

    awards(
      arg0: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides
    ): Promise<
      [string, number, number, number, string, number, BigNumber, BigNumber] & {
        usr: string;
        bgn: number;
        clf: number;
        fin: number;
        mgr: string;
        res: number;
        tot: BigNumber;
        rxd: BigNumber;
      }
    >;

    bgn(
      _id: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides
    ): Promise<[BigNumber]>;

    cap(overrides?: CallOverrides): Promise<[BigNumber]>;

    clf(
      _id: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides
    ): Promise<[BigNumber]>;

    create(
      _usr: PromiseOrValue<string>,
      _tot: PromiseOrValue<BigNumberish>,
      _bgn: PromiseOrValue<BigNumberish>,
      _tau: PromiseOrValue<BigNumberish>,
      _eta: PromiseOrValue<BigNumberish>,
      _mgr: PromiseOrValue<string>,
      overrides?: Overrides & { from?: PromiseOrValue<string> }
    ): Promise<ContractTransaction>;

    czar(overrides?: CallOverrides): Promise<[string]>;

    deny(
      _usr: PromiseOrValue<string>,
      overrides?: Overrides & { from?: PromiseOrValue<string> }
    ): Promise<ContractTransaction>;

    file(
      what: PromiseOrValue<BytesLike>,
      data: PromiseOrValue<BigNumberish>,
      overrides?: Overrides & { from?: PromiseOrValue<string> }
    ): Promise<ContractTransaction>;

    fin(
      _id: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides
    ): Promise<[BigNumber]>;

    gem(overrides?: CallOverrides): Promise<[string]>;

    ids(overrides?: CallOverrides): Promise<[BigNumber]>;

    isTrustedForwarder(
      forwarder: PromiseOrValue<string>,
      overrides?: CallOverrides
    ): Promise<[boolean]>;

    mgr(
      _id: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides
    ): Promise<[string]>;

    move(
      _id: PromiseOrValue<BigNumberish>,
      _dst: PromiseOrValue<string>,
      overrides?: Overrides & { from?: PromiseOrValue<string> }
    ): Promise<ContractTransaction>;

    rely(
      _usr: PromiseOrValue<string>,
      overrides?: Overrides & { from?: PromiseOrValue<string> }
    ): Promise<ContractTransaction>;

    res(
      _id: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides
    ): Promise<[BigNumber]>;

    restrict(
      _id: PromiseOrValue<BigNumberish>,
      overrides?: Overrides & { from?: PromiseOrValue<string> }
    ): Promise<ContractTransaction>;

    rxd(
      _id: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides
    ): Promise<[BigNumber]>;

    tot(
      _id: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides
    ): Promise<[BigNumber]>;

    unpaid(
      _id: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides
    ): Promise<[BigNumber] & { amt: BigNumber }>;

    unrestrict(
      _id: PromiseOrValue<BigNumberish>,
      overrides?: Overrides & { from?: PromiseOrValue<string> }
    ): Promise<ContractTransaction>;

    usr(
      _id: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides
    ): Promise<[string]>;

    valid(
      _id: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides
    ): Promise<[boolean] & { isValid: boolean }>;

    "vest(uint256)"(
      _id: PromiseOrValue<BigNumberish>,
      overrides?: Overrides & { from?: PromiseOrValue<string> }
    ): Promise<ContractTransaction>;

    "vest(uint256,uint256)"(
      _id: PromiseOrValue<BigNumberish>,
      _maxAmt: PromiseOrValue<BigNumberish>,
      overrides?: Overrides & { from?: PromiseOrValue<string> }
    ): Promise<ContractTransaction>;

    wards(
      arg0: PromiseOrValue<string>,
      overrides?: CallOverrides
    ): Promise<[BigNumber]>;

    "yank(uint256)"(
      _id: PromiseOrValue<BigNumberish>,
      overrides?: Overrides & { from?: PromiseOrValue<string> }
    ): Promise<ContractTransaction>;

    "yank(uint256,uint256)"(
      _id: PromiseOrValue<BigNumberish>,
      _end: PromiseOrValue<BigNumberish>,
      overrides?: Overrides & { from?: PromiseOrValue<string> }
    ): Promise<ContractTransaction>;
  };

  TWENTY_YEARS(overrides?: CallOverrides): Promise<BigNumber>;

  accrued(
    _id: PromiseOrValue<BigNumberish>,
    overrides?: CallOverrides
  ): Promise<BigNumber>;

  awards(
    arg0: PromiseOrValue<BigNumberish>,
    overrides?: CallOverrides
  ): Promise<
    [string, number, number, number, string, number, BigNumber, BigNumber] & {
      usr: string;
      bgn: number;
      clf: number;
      fin: number;
      mgr: string;
      res: number;
      tot: BigNumber;
      rxd: BigNumber;
    }
  >;

  bgn(
    _id: PromiseOrValue<BigNumberish>,
    overrides?: CallOverrides
  ): Promise<BigNumber>;

  cap(overrides?: CallOverrides): Promise<BigNumber>;

  clf(
    _id: PromiseOrValue<BigNumberish>,
    overrides?: CallOverrides
  ): Promise<BigNumber>;

  create(
    _usr: PromiseOrValue<string>,
    _tot: PromiseOrValue<BigNumberish>,
    _bgn: PromiseOrValue<BigNumberish>,
    _tau: PromiseOrValue<BigNumberish>,
    _eta: PromiseOrValue<BigNumberish>,
    _mgr: PromiseOrValue<string>,
    overrides?: Overrides & { from?: PromiseOrValue<string> }
  ): Promise<ContractTransaction>;

  czar(overrides?: CallOverrides): Promise<string>;

  deny(
    _usr: PromiseOrValue<string>,
    overrides?: Overrides & { from?: PromiseOrValue<string> }
  ): Promise<ContractTransaction>;

  file(
    what: PromiseOrValue<BytesLike>,
    data: PromiseOrValue<BigNumberish>,
    overrides?: Overrides & { from?: PromiseOrValue<string> }
  ): Promise<ContractTransaction>;

  fin(
    _id: PromiseOrValue<BigNumberish>,
    overrides?: CallOverrides
  ): Promise<BigNumber>;

  gem(overrides?: CallOverrides): Promise<string>;

  ids(overrides?: CallOverrides): Promise<BigNumber>;

  isTrustedForwarder(
    forwarder: PromiseOrValue<string>,
    overrides?: CallOverrides
  ): Promise<boolean>;

  mgr(
    _id: PromiseOrValue<BigNumberish>,
    overrides?: CallOverrides
  ): Promise<string>;

  move(
    _id: PromiseOrValue<BigNumberish>,
    _dst: PromiseOrValue<string>,
    overrides?: Overrides & { from?: PromiseOrValue<string> }
  ): Promise<ContractTransaction>;

  rely(
    _usr: PromiseOrValue<string>,
    overrides?: Overrides & { from?: PromiseOrValue<string> }
  ): Promise<ContractTransaction>;

  res(
    _id: PromiseOrValue<BigNumberish>,
    overrides?: CallOverrides
  ): Promise<BigNumber>;

  restrict(
    _id: PromiseOrValue<BigNumberish>,
    overrides?: Overrides & { from?: PromiseOrValue<string> }
  ): Promise<ContractTransaction>;

  rxd(
    _id: PromiseOrValue<BigNumberish>,
    overrides?: CallOverrides
  ): Promise<BigNumber>;

  tot(
    _id: PromiseOrValue<BigNumberish>,
    overrides?: CallOverrides
  ): Promise<BigNumber>;

  unpaid(
    _id: PromiseOrValue<BigNumberish>,
    overrides?: CallOverrides
  ): Promise<BigNumber>;

  unrestrict(
    _id: PromiseOrValue<BigNumberish>,
    overrides?: Overrides & { from?: PromiseOrValue<string> }
  ): Promise<ContractTransaction>;

  usr(
    _id: PromiseOrValue<BigNumberish>,
    overrides?: CallOverrides
  ): Promise<string>;

  valid(
    _id: PromiseOrValue<BigNumberish>,
    overrides?: CallOverrides
  ): Promise<boolean>;

  "vest(uint256)"(
    _id: PromiseOrValue<BigNumberish>,
    overrides?: Overrides & { from?: PromiseOrValue<string> }
  ): Promise<ContractTransaction>;

  "vest(uint256,uint256)"(
    _id: PromiseOrValue<BigNumberish>,
    _maxAmt: PromiseOrValue<BigNumberish>,
    overrides?: Overrides & { from?: PromiseOrValue<string> }
  ): Promise<ContractTransaction>;

  wards(
    arg0: PromiseOrValue<string>,
    overrides?: CallOverrides
  ): Promise<BigNumber>;

  "yank(uint256)"(
    _id: PromiseOrValue<BigNumberish>,
    overrides?: Overrides & { from?: PromiseOrValue<string> }
  ): Promise<ContractTransaction>;

  "yank(uint256,uint256)"(
    _id: PromiseOrValue<BigNumberish>,
    _end: PromiseOrValue<BigNumberish>,
    overrides?: Overrides & { from?: PromiseOrValue<string> }
  ): Promise<ContractTransaction>;

  callStatic: {
    TWENTY_YEARS(overrides?: CallOverrides): Promise<BigNumber>;

    accrued(
      _id: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides
    ): Promise<BigNumber>;

    awards(
      arg0: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides
    ): Promise<
      [string, number, number, number, string, number, BigNumber, BigNumber] & {
        usr: string;
        bgn: number;
        clf: number;
        fin: number;
        mgr: string;
        res: number;
        tot: BigNumber;
        rxd: BigNumber;
      }
    >;

    bgn(
      _id: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides
    ): Promise<BigNumber>;

    cap(overrides?: CallOverrides): Promise<BigNumber>;

    clf(
      _id: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides
    ): Promise<BigNumber>;

    create(
      _usr: PromiseOrValue<string>,
      _tot: PromiseOrValue<BigNumberish>,
      _bgn: PromiseOrValue<BigNumberish>,
      _tau: PromiseOrValue<BigNumberish>,
      _eta: PromiseOrValue<BigNumberish>,
      _mgr: PromiseOrValue<string>,
      overrides?: CallOverrides
    ): Promise<BigNumber>;

    czar(overrides?: CallOverrides): Promise<string>;

    deny(
      _usr: PromiseOrValue<string>,
      overrides?: CallOverrides
    ): Promise<void>;

    file(
      what: PromiseOrValue<BytesLike>,
      data: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides
    ): Promise<void>;

    fin(
      _id: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides
    ): Promise<BigNumber>;

    gem(overrides?: CallOverrides): Promise<string>;

    ids(overrides?: CallOverrides): Promise<BigNumber>;

    isTrustedForwarder(
      forwarder: PromiseOrValue<string>,
      overrides?: CallOverrides
    ): Promise<boolean>;

    mgr(
      _id: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides
    ): Promise<string>;

    move(
      _id: PromiseOrValue<BigNumberish>,
      _dst: PromiseOrValue<string>,
      overrides?: CallOverrides
    ): Promise<void>;

    rely(
      _usr: PromiseOrValue<string>,
      overrides?: CallOverrides
    ): Promise<void>;

    res(
      _id: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides
    ): Promise<BigNumber>;

    restrict(
      _id: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides
    ): Promise<void>;

    rxd(
      _id: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides
    ): Promise<BigNumber>;

    tot(
      _id: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides
    ): Promise<BigNumber>;

    unpaid(
      _id: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides
    ): Promise<BigNumber>;

    unrestrict(
      _id: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides
    ): Promise<void>;

    usr(
      _id: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides
    ): Promise<string>;

    valid(
      _id: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides
    ): Promise<boolean>;

    "vest(uint256)"(
      _id: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides
    ): Promise<void>;

    "vest(uint256,uint256)"(
      _id: PromiseOrValue<BigNumberish>,
      _maxAmt: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides
    ): Promise<void>;

    wards(
      arg0: PromiseOrValue<string>,
      overrides?: CallOverrides
    ): Promise<BigNumber>;

    "yank(uint256)"(
      _id: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides
    ): Promise<void>;

    "yank(uint256,uint256)"(
      _id: PromiseOrValue<BigNumberish>,
      _end: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides
    ): Promise<void>;
  };

  filters: {
    "Deny(address)"(usr?: PromiseOrValue<string> | null): DenyEventFilter;
    Deny(usr?: PromiseOrValue<string> | null): DenyEventFilter;

    "File(bytes32,uint256)"(
      what?: PromiseOrValue<BytesLike> | null,
      data?: null
    ): FileEventFilter;
    File(what?: PromiseOrValue<BytesLike> | null, data?: null): FileEventFilter;

    "Init(uint256,address)"(
      id?: PromiseOrValue<BigNumberish> | null,
      usr?: PromiseOrValue<string> | null
    ): InitEventFilter;
    Init(
      id?: PromiseOrValue<BigNumberish> | null,
      usr?: PromiseOrValue<string> | null
    ): InitEventFilter;

    "Move(uint256,address)"(
      id?: PromiseOrValue<BigNumberish> | null,
      dst?: PromiseOrValue<string> | null
    ): MoveEventFilter;
    Move(
      id?: PromiseOrValue<BigNumberish> | null,
      dst?: PromiseOrValue<string> | null
    ): MoveEventFilter;

    "Rely(address)"(usr?: PromiseOrValue<string> | null): RelyEventFilter;
    Rely(usr?: PromiseOrValue<string> | null): RelyEventFilter;

    "Restrict(uint256)"(
      id?: PromiseOrValue<BigNumberish> | null
    ): RestrictEventFilter;
    Restrict(id?: PromiseOrValue<BigNumberish> | null): RestrictEventFilter;

    "Unrestrict(uint256)"(
      id?: PromiseOrValue<BigNumberish> | null
    ): UnrestrictEventFilter;
    Unrestrict(id?: PromiseOrValue<BigNumberish> | null): UnrestrictEventFilter;

    "Vest(uint256,uint256)"(
      id?: PromiseOrValue<BigNumberish> | null,
      amt?: null
    ): VestEventFilter;
    Vest(id?: PromiseOrValue<BigNumberish> | null, amt?: null): VestEventFilter;

    "Yank(uint256,uint256)"(
      id?: PromiseOrValue<BigNumberish> | null,
      end?: null
    ): YankEventFilter;
    Yank(id?: PromiseOrValue<BigNumberish> | null, end?: null): YankEventFilter;
  };

  estimateGas: {
    TWENTY_YEARS(overrides?: CallOverrides): Promise<BigNumber>;

    accrued(
      _id: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides
    ): Promise<BigNumber>;

    awards(
      arg0: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides
    ): Promise<BigNumber>;

    bgn(
      _id: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides
    ): Promise<BigNumber>;

    cap(overrides?: CallOverrides): Promise<BigNumber>;

    clf(
      _id: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides
    ): Promise<BigNumber>;

    create(
      _usr: PromiseOrValue<string>,
      _tot: PromiseOrValue<BigNumberish>,
      _bgn: PromiseOrValue<BigNumberish>,
      _tau: PromiseOrValue<BigNumberish>,
      _eta: PromiseOrValue<BigNumberish>,
      _mgr: PromiseOrValue<string>,
      overrides?: Overrides & { from?: PromiseOrValue<string> }
    ): Promise<BigNumber>;

    czar(overrides?: CallOverrides): Promise<BigNumber>;

    deny(
      _usr: PromiseOrValue<string>,
      overrides?: Overrides & { from?: PromiseOrValue<string> }
    ): Promise<BigNumber>;

    file(
      what: PromiseOrValue<BytesLike>,
      data: PromiseOrValue<BigNumberish>,
      overrides?: Overrides & { from?: PromiseOrValue<string> }
    ): Promise<BigNumber>;

    fin(
      _id: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides
    ): Promise<BigNumber>;

    gem(overrides?: CallOverrides): Promise<BigNumber>;

    ids(overrides?: CallOverrides): Promise<BigNumber>;

    isTrustedForwarder(
      forwarder: PromiseOrValue<string>,
      overrides?: CallOverrides
    ): Promise<BigNumber>;

    mgr(
      _id: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides
    ): Promise<BigNumber>;

    move(
      _id: PromiseOrValue<BigNumberish>,
      _dst: PromiseOrValue<string>,
      overrides?: Overrides & { from?: PromiseOrValue<string> }
    ): Promise<BigNumber>;

    rely(
      _usr: PromiseOrValue<string>,
      overrides?: Overrides & { from?: PromiseOrValue<string> }
    ): Promise<BigNumber>;

    res(
      _id: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides
    ): Promise<BigNumber>;

    restrict(
      _id: PromiseOrValue<BigNumberish>,
      overrides?: Overrides & { from?: PromiseOrValue<string> }
    ): Promise<BigNumber>;

    rxd(
      _id: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides
    ): Promise<BigNumber>;

    tot(
      _id: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides
    ): Promise<BigNumber>;

    unpaid(
      _id: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides
    ): Promise<BigNumber>;

    unrestrict(
      _id: PromiseOrValue<BigNumberish>,
      overrides?: Overrides & { from?: PromiseOrValue<string> }
    ): Promise<BigNumber>;

    usr(
      _id: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides
    ): Promise<BigNumber>;

    valid(
      _id: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides
    ): Promise<BigNumber>;

    "vest(uint256)"(
      _id: PromiseOrValue<BigNumberish>,
      overrides?: Overrides & { from?: PromiseOrValue<string> }
    ): Promise<BigNumber>;

    "vest(uint256,uint256)"(
      _id: PromiseOrValue<BigNumberish>,
      _maxAmt: PromiseOrValue<BigNumberish>,
      overrides?: Overrides & { from?: PromiseOrValue<string> }
    ): Promise<BigNumber>;

    wards(
      arg0: PromiseOrValue<string>,
      overrides?: CallOverrides
    ): Promise<BigNumber>;

    "yank(uint256)"(
      _id: PromiseOrValue<BigNumberish>,
      overrides?: Overrides & { from?: PromiseOrValue<string> }
    ): Promise<BigNumber>;

    "yank(uint256,uint256)"(
      _id: PromiseOrValue<BigNumberish>,
      _end: PromiseOrValue<BigNumberish>,
      overrides?: Overrides & { from?: PromiseOrValue<string> }
    ): Promise<BigNumber>;
  };

  populateTransaction: {
    TWENTY_YEARS(overrides?: CallOverrides): Promise<PopulatedTransaction>;

    accrued(
      _id: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides
    ): Promise<PopulatedTransaction>;

    awards(
      arg0: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides
    ): Promise<PopulatedTransaction>;

    bgn(
      _id: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides
    ): Promise<PopulatedTransaction>;

    cap(overrides?: CallOverrides): Promise<PopulatedTransaction>;

    clf(
      _id: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides
    ): Promise<PopulatedTransaction>;

    create(
      _usr: PromiseOrValue<string>,
      _tot: PromiseOrValue<BigNumberish>,
      _bgn: PromiseOrValue<BigNumberish>,
      _tau: PromiseOrValue<BigNumberish>,
      _eta: PromiseOrValue<BigNumberish>,
      _mgr: PromiseOrValue<string>,
      overrides?: Overrides & { from?: PromiseOrValue<string> }
    ): Promise<PopulatedTransaction>;

    czar(overrides?: CallOverrides): Promise<PopulatedTransaction>;

    deny(
      _usr: PromiseOrValue<string>,
      overrides?: Overrides & { from?: PromiseOrValue<string> }
    ): Promise<PopulatedTransaction>;

    file(
      what: PromiseOrValue<BytesLike>,
      data: PromiseOrValue<BigNumberish>,
      overrides?: Overrides & { from?: PromiseOrValue<string> }
    ): Promise<PopulatedTransaction>;

    fin(
      _id: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides
    ): Promise<PopulatedTransaction>;

    gem(overrides?: CallOverrides): Promise<PopulatedTransaction>;

    ids(overrides?: CallOverrides): Promise<PopulatedTransaction>;

    isTrustedForwarder(
      forwarder: PromiseOrValue<string>,
      overrides?: CallOverrides
    ): Promise<PopulatedTransaction>;

    mgr(
      _id: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides
    ): Promise<PopulatedTransaction>;

    move(
      _id: PromiseOrValue<BigNumberish>,
      _dst: PromiseOrValue<string>,
      overrides?: Overrides & { from?: PromiseOrValue<string> }
    ): Promise<PopulatedTransaction>;

    rely(
      _usr: PromiseOrValue<string>,
      overrides?: Overrides & { from?: PromiseOrValue<string> }
    ): Promise<PopulatedTransaction>;

    res(
      _id: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides
    ): Promise<PopulatedTransaction>;

    restrict(
      _id: PromiseOrValue<BigNumberish>,
      overrides?: Overrides & { from?: PromiseOrValue<string> }
    ): Promise<PopulatedTransaction>;

    rxd(
      _id: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides
    ): Promise<PopulatedTransaction>;

    tot(
      _id: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides
    ): Promise<PopulatedTransaction>;

    unpaid(
      _id: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides
    ): Promise<PopulatedTransaction>;

    unrestrict(
      _id: PromiseOrValue<BigNumberish>,
      overrides?: Overrides & { from?: PromiseOrValue<string> }
    ): Promise<PopulatedTransaction>;

    usr(
      _id: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides
    ): Promise<PopulatedTransaction>;

    valid(
      _id: PromiseOrValue<BigNumberish>,
      overrides?: CallOverrides
    ): Promise<PopulatedTransaction>;

    "vest(uint256)"(
      _id: PromiseOrValue<BigNumberish>,
      overrides?: Overrides & { from?: PromiseOrValue<string> }
    ): Promise<PopulatedTransaction>;

    "vest(uint256,uint256)"(
      _id: PromiseOrValue<BigNumberish>,
      _maxAmt: PromiseOrValue<BigNumberish>,
      overrides?: Overrides & { from?: PromiseOrValue<string> }
    ): Promise<PopulatedTransaction>;

    wards(
      arg0: PromiseOrValue<string>,
      overrides?: CallOverrides
    ): Promise<PopulatedTransaction>;

    "yank(uint256)"(
      _id: PromiseOrValue<BigNumberish>,
      overrides?: Overrides & { from?: PromiseOrValue<string> }
    ): Promise<PopulatedTransaction>;

    "yank(uint256,uint256)"(
      _id: PromiseOrValue<BigNumberish>,
      _end: PromiseOrValue<BigNumberish>,
      overrides?: Overrides & { from?: PromiseOrValue<string> }
    ): Promise<PopulatedTransaction>;
  };
}
