// Generated by Obelisk 0.40.0
package testing:sleep-obelisk-ext;

interface sleep {
  use obelisk:types/time@5.0.0.{duration};
  use obelisk:types/execution@5.0.0.{execution-id};
  use obelisk:types/join-set@5.0.0.{join-set};
  use obelisk:types/execution@5.0.0.{await-next-extension-error, get-extension-error};

  sleep-submit: func(join-set: borrow<join-set>, duration: duration) -> execution-id;

  sleep-await-next: func(join-set: borrow<join-set>) -> result<result, await-next-extension-error>;

  sleep-get: func(execution-id: execution-id) -> result<result, get-extension-error>;

  sleep-loop-submit: func(join-set: borrow<join-set>, duration: duration, iterations: u32) -> execution-id;

  sleep-loop-await-next: func(join-set: borrow<join-set>) -> result<result, await-next-extension-error>;

  sleep-loop-get: func(execution-id: execution-id) -> result<result, get-extension-error>;

  noop-submit: func(join-set: borrow<join-set>) -> execution-id;

  noop-await-next: func(join-set: borrow<join-set>) -> result<result, await-next-extension-error>;

  noop-get: func(execution-id: execution-id) -> result<result, get-extension-error>;
}

