*/ public function account(): array; /** * The account's plan, rates and credit, `GET /v1/billing`. * * @return array A BillingView. */ public function billing(): array; /** * Start a transcription, `POST /v1/transcriptions`. * * @param Source $source Where the audio comes from. * @param string $name The recording's name in VocalStack. * @param string $idempotency_key The same key never starts two jobs. * @param array $settings VocalStack's transcription settings, by their wire * names: `spokenLanguage` (absent to auto-detect), * `speakerLabels` (`off`, `auto` or `on`). * @return array{recordingId: string, transcriptionId: string} */ public function start( Source $source, string $name, string $idempotency_key, array $settings = array() ): array; /** * The job's state, `GET /v1/recordings/{id}/job`. * * @param string $recording_id The recording. * @return array{state: string, progress?: array, error?: ?string, errorCode?: ?string} */ public function job( string $recording_id ): array; /** * Stop a job before it finishes, `POST /v1/recordings/{id}/stop`. * * @param string $recording_id The recording. */ public function stop( string $recording_id ): void; /** * The finished transcript, `GET /v1/recordings/{id}/transcript`. * * @param string $recording_id The recording. * @return array{lang?: ?string, sentences: list>, segments?: list>} */ public function transcript( string $recording_id ): array; }