<?php namespace OpenAI\Contracts\Resources; use OpenAI\Responses\StreamResponse; use OpenAI\Responses\Threads\Runs\ThreadRunResponse; use OpenAI\Responses\Threads\Runs\ThreadRunStreamResponse; use OpenAI\Responses\Threads\ThreadDeleteResponse; use OpenAI\Responses\Threads\ThreadResponse; interface ThreadsContract { /** * Create a thread. * * @see https://platform.openai.com/docs/api-reference/threads/createThread * * @param array<string, mixed> $parameters */ public function create(array $parameters): ThreadResponse; /** * Create a thread and run it in one request. * * @see https://platform.openai.com/docs/api-reference/runs/createThreadAndRun * * @param array<string, mixed> $parameters */ public function createAndRun(array $parameters): ThreadRunResponse; /** * Create a thread and run it in one request, returning a stream. * * @see https://platform.openai.com/docs/api-reference/runs/createThreadAndRun * * @param array<string, mixed> $parameters * @return StreamResponse<ThreadRunStreamResponse> */ public function createAndRunStreamed(array $parameters): StreamResponse; /** * Retrieves a thread. * * @see https://platform.openai.com/docs/api-reference/threads/getThread */ public function retrieve(string $id): ThreadResponse; /** * Modifies a thread. * * @see https://platform.openai.com/docs/api-reference/threads/modifyThread * * @param array<string, mixed> $parameters */ public function modify(string $id, array $parameters): ThreadResponse; /** * Delete a thread. * * @see https://platform.openai.com/docs/api-reference/threads/deleteThread */ public function delete(string $id): ThreadDeleteResponse; /** * Manage messages attached to a thread. * * @see https://platform.openai.com/docs/api-reference/messages */ public function messages(): ThreadsMessagesContract; /** * Represents an execution run on a thread. * * @see https://platform.openai.com/docs/api-reference/runs */ public function runs(): ThreadsRunsContract; }