import type Parser from "web-tree-sitter";
import type { CodeSymbol } from "../../types.js";
/**
 * Parse `@property` and `@method` tags from a PHPDoc block.
 * Used to synthesize Yii2 ActiveRecord magic properties (which live only in
 * the docblock, not as real PHP fields).
 *
 * Supports forms:
 *   @property int $id                  → { tag: "property", name: "id", type: "int" }
 *   @property string $name             → { tag: "property", name: "name", type: "string" }
 *   @method getPosts()                 → { tag: "method", name: "getPosts" }
 *   @method ActiveQuery getPosts()     → { tag: "method", name: "getPosts", type: "ActiveQuery" }
 *
 * Returns [] for empty / undefined input. Tag order is preserved.
 */
export declare function parsePhpDocTags(docstring?: string): Array<{
    tag: "property" | "method";
    name: string;
    type?: string;
}>;
/**
 * Extract a `@var T` type annotation from a PHPDoc block. Used for inferring
 * property types in pre-PHP-7.4 codebases that keep typing in docblocks
 * rather than as inline type hints. Returns the raw type string (no further
 * normalization) or undefined if no `@var` is present.
 *
 * Examples:
 *   /** @var string *\/        → "string"
 *   /** @var User|null *\/     → "User|null"
 *   /** @var int[] *\/         → "int[]"
 */
export declare function parsePhpDocVar(docstring?: string): string | undefined;
export declare function extractPhpSymbols(tree: Parser.Tree, filePath: string, source: string, repo: string): CodeSymbol[];
//# sourceMappingURL=php.d.ts.map