interface blobstore { use types.{container-name, container-metadata, object-metadata, object-id}; clear-container: func(name: string) -> result<_, string>; container-exists: func(name: string) -> result; create-container: func(name: string) -> result<_, string>; delete-container: func(name: string) -> result<_, string>; get-container-info: func(name: string) -> result; list-container-objects: func(name: string, limit: option, offset: option) -> result, future>>, string>; copy-object: func(src: object-id, dest: object-id) -> result<_, string>; delete-object: func(id: object-id) -> result<_, string>; delete-objects: func(container: string, objects: list) -> result<_, string>; get-container-data: func(id: object-id, start: u64, end: u64) -> result, future>>, string>; get-object-info: func(id: object-id) -> result; has-object: func(id: object-id) -> result; move-object: func(src: object-id, dest: object-id) -> result<_, string>; write-container-data: func(id: object-id, data: stream) -> result>, string>; }