import { DocNodeKind, DocNode } from './DocNode';
import type { DocDeclarationReference } from './DocDeclarationReference';
import { DocInlineTagBase, type IDocInlineTagBaseParsedParameters, type IDocInlineTagBaseParameters } from './DocInlineTagBase';
import type { TokenSequence } from '../parser/TokenSequence';
/**
* Constructor parameters for {@link DocLinkTag}.
*/
export interface IDocLinkTagParameters extends IDocInlineTagBaseParameters {
codeDestination?: DocDeclarationReference;
urlDestination?: string;
linkText?: string;
}
/**
* Constructor parameters for {@link DocLinkTag}.
*/
export interface IDocLinkTagParsedParameters extends IDocInlineTagBaseParsedParameters {
codeDestination?: DocDeclarationReference;
urlDestinationExcerpt?: TokenSequence;
spacingAfterDestinationExcerpt?: TokenSequence;
pipeExcerpt?: TokenSequence;
spacingAfterPipeExcerpt?: TokenSequence;
linkTextExcerpt?: TokenSequence;
spacingAfterLinkTextExcerpt?: TokenSequence;
}
/**
* Represents an `{@link}` tag.
*/
export declare class DocLinkTag extends DocInlineTagBase {
private readonly _codeDestination;
private _urlDestination;
private readonly _urlDestinationExcerpt;
private readonly _spacingAfterDestinationExcerpt;
private readonly _pipeExcerpt;
private readonly _spacingAfterPipeExcerpt;
private _linkText;
private readonly _spacingAfterLinkTextExcerpt;
private readonly _linkTextExcerpt;
/**
* Don't call this directly. Instead use {@link TSDocParser}
* @internal
*/
constructor(parameters: IDocLinkTagParameters | IDocLinkTagParsedParameters);
/** @override */
get kind(): DocNodeKind | string;
/**
* If the link tag refers to a declaration, this returns the declaration reference object;
* otherwise this property is undefined.
* @remarks
* Either the `codeDestination` or the `urlDestination` property will be defined, but never both.
*/
get codeDestination(): DocDeclarationReference | undefined;
/**
* If the link tag was an ordinary URI, this returns the URL string;
* otherwise this property is undefined.
* @remarks
* Either the `codeDestination` or the `urlDestination` property will be defined, but never both.
*/
get urlDestination(): string | undefined;
/**
* An optional text string that is the hyperlink text. If omitted, the documentation
* renderer will use a default string based on the link itself (e.g. the URL text
* or the declaration identifier).
*
* @remarks
*
* In HTML, the hyperlink can include leading/trailing space characters around the link text.
* For example, this HTML will cause a web browser to `y` and also the space character before
* and after it:
*
* ```html
* x y z
* ```
*
* Unlike HTML, TSDoc trims leading/trailing spaces. For example, this TSDoc will be
* displayed `xy z` and underline only the `y` character:
*
* ```
* x{@link Button | y } z
* ```
*/
get linkText(): string | undefined;
/** @override */
protected getChildNodesForContent(): ReadonlyArray;
}
//# sourceMappingURL=DocLinkTag.d.ts.map