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

interface workflow {
  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};

  fibow-submit: func(join-set: borrow<join-set>, n: u8, iterations: u32) -> execution-id;

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

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

  fiboa-submit: func(join-set: borrow<join-set>, n: u8, iterations: u32) -> execution-id;

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

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

  fiboa-concurrent-submit: func(join-set: borrow<join-set>, n: u8, iterations: u32) -> execution-id;

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

  fiboa-concurrent-get: func(execution-id: execution-id) -> result<result<u64>, get-extension-error>;

  fiboa-submit-json-submit: func(join-set: borrow<join-set>, n: u8) -> execution-id;

  fiboa-submit-json-await-next: func(join-set: borrow<join-set>) -> result<result<u64>, await-next-extension-error>;

  fiboa-submit-json-get: func(execution-id: execution-id) -> result<result<u64>, get-extension-error>;

  test-submit-json-unknown-ffqn-submit: func(join-set: borrow<join-set>) -> execution-id;

  test-submit-json-unknown-ffqn-await-next: func(join-set: borrow<join-set>) -> result<result<_, string>, await-next-extension-error>;

  test-submit-json-unknown-ffqn-get: func(execution-id: execution-id) -> result<result<_, string>, get-extension-error>;

  test-submit-json-malformed-params-submit: func(join-set: borrow<join-set>) -> execution-id;

  test-submit-json-malformed-params-await-next: func(join-set: borrow<join-set>) -> result<result<_, string>, await-next-extension-error>;

  test-submit-json-malformed-params-get: func(execution-id: execution-id) -> result<result<_, string>, get-extension-error>;

  test-get-result-json-before-await-submit: func(join-set: borrow<join-set>) -> execution-id;

  test-get-result-json-before-await-await-next: func(join-set: borrow<join-set>) -> result<result<_, string>, await-next-extension-error>;

  test-get-result-json-before-await-get: func(execution-id: execution-id) -> result<result<_, string>, get-extension-error>;

  test-get-result-json-err-variant-submit: func(join-set: borrow<join-set>) -> execution-id;

  test-get-result-json-err-variant-await-next: func(join-set: borrow<join-set>) -> result<result<_, string>, await-next-extension-error>;

  test-get-result-json-err-variant-get: func(execution-id: execution-id) -> result<result<_, string>, get-extension-error>;

  test-schedule-json-submit: func(join-set: borrow<join-set>) -> execution-id;

  test-schedule-json-await-next: func(join-set: borrow<join-set>) -> result<result<execution-id, string>, await-next-extension-error>;

  test-schedule-json-get: func(execution-id: execution-id) -> result<result<execution-id, string>, get-extension-error>;
}

