export declare class ContextFile {
    readonly path: string;
    readonly content: string;
    readonly lines: string[];
    constructor(path: string, content: string);
    getLineCount(): number;
    getCharacterCount(): number;
    getLine(lineNumber: number): string;
    /**
     * Whether this file is a Markdown document (`.md` / `.markdown`).
     *
     * @remarks
     * Used by rules that validate Markdown-document structure so they only run
     * on Markdown files, not on other linted config (e.g. `settings.json`).
     */
    isMarkdown(): boolean;
    /**
     * Whether this file is a Claude Code settings file
     * (`settings.json` / `settings.local.json`).
     */
    isSettingsFile(): boolean;
    /**
     * Whether this file is a Claude Code plugin manifest — either a plugin
     * descriptor (`plugin.json`, conventionally under `.claude-plugin/`) or a
     * marketplace listing (`marketplace.json`).
     *
     * @remarks
     * Matched by basename so both the plugin and marketplace manifests are
     * covered wherever they live, while ordinary `package.json` / `tsconfig.json`
     * files are left untouched.
     */
    isPluginManifest(): boolean;
    /**
     * Whether this file is a Claude Code MCP server configuration (`.mcp.json`).
     *
     * @remarks
     * Matches the dotfile `.mcp.json` and any `*.mcp.json`, but not a plain
     * `mcp.json` without the leading dot or a generic `*.json`.
     */
    isMcpConfig(): boolean;
    /**
     * Whether this file is a Claude Code output style
     * (a Markdown file under an `output-styles/` directory).
     */
    isOutputStyle(): boolean;
    /**
     * Whether this file is a Claude Code skill (a Markdown file under a
     * `.claude/skills/` directory).
     */
    isSkillFile(): boolean;
    /**
     * Whether this file is a Claude Code subagent (a Markdown file under a
     * `.claude/agents/` directory).
     */
    isAgentFile(): boolean;
    /**
     * Whether this file is a CLAUDE.md-style context document — a Markdown file
     * that is NOT a skill, subagent, or output-style.
     *
     * @remarks
     * Used by rules that validate CLAUDE.md *document* structure (required
     * sections, monorepo hierarchy, file location, opinionated guidance). Those
     * rules must not fire on skill / subagent / output-style Markdown, which are
     * Markdown but not CLAUDE.md documents — otherwise a project-wide lint spams
     * "missing section" false positives on every skill and agent file.
     */
    isClaudeMarkdown(): boolean;
    hasSection(sectionTitle: string): boolean;
    private escapeRegExp;
}
//# sourceMappingURL=ContextFile.d.ts.map