<?php

/**
 * This class has been generated by dagger-php-sdk. DO NOT EDIT.
 */

declare(strict_types=1);

namespace Dagger;

class SearchResult extends Client\AbstractObject implements Client\IdAble
{
    /**
     * The byte offset of this line within the file.
     */
    public function absoluteOffset(): int
    {
        $leafQueryBuilder = new \Dagger\Client\QueryBuilder('absoluteOffset');
        return (int)$this->queryLeaf($leafQueryBuilder, 'absoluteOffset');
    }

    /**
     * The path to the file that matched.
     */
    public function filePath(): string
    {
        $leafQueryBuilder = new \Dagger\Client\QueryBuilder('filePath');
        return (string)$this->queryLeaf($leafQueryBuilder, 'filePath');
    }

    /**
     * A unique identifier for this SearchResult.
     */
    public function id(): SearchResultId
    {
        $leafQueryBuilder = new \Dagger\Client\QueryBuilder('id');
        return new \Dagger\SearchResultId((string)$this->queryLeaf($leafQueryBuilder, 'id'));
    }

    /**
     * The first line that matched.
     */
    public function lineNumber(): int
    {
        $leafQueryBuilder = new \Dagger\Client\QueryBuilder('lineNumber');
        return (int)$this->queryLeaf($leafQueryBuilder, 'lineNumber');
    }

    /**
     * The line content that matched.
     */
    public function matchedLines(): string
    {
        $leafQueryBuilder = new \Dagger\Client\QueryBuilder('matchedLines');
        return (string)$this->queryLeaf($leafQueryBuilder, 'matchedLines');
    }

    /**
     * Sub-match positions and content within the matched lines.
     */
    public function submatches(): array
    {
        $leafQueryBuilder = new \Dagger\Client\QueryBuilder('submatches');
        return (array)$this->queryLeaf($leafQueryBuilder, 'submatches');
    }
}
