import { DeclarationReference } from '@microsoft/tsdoc/lib-commonjs/beta/DeclarationReference'; import { Excerpt, IExcerptTokenRange } from '../mixins/Excerpt'; import { ApiItemKind } from '../items/ApiItem'; import { ApiDeclaredItem, IApiDeclaredItemOptions, IApiDeclaredItemJson } from '../items/ApiDeclaredItem'; import { ApiReleaseTagMixin, IApiReleaseTagMixinOptions } from '../mixins/ApiReleaseTagMixin'; import { IApiNameMixinOptions, ApiNameMixin } from '../mixins/ApiNameMixin'; import { ApiTypeParameterListMixin, IApiTypeParameterListMixinOptions, IApiTypeParameterListMixinJson } from '../mixins/ApiTypeParameterListMixin'; import { DeserializerContext } from './DeserializerContext'; /** * Constructor options for {@link ApiTypeAlias}. * @public */ export interface IApiTypeAliasOptions extends IApiNameMixinOptions, IApiReleaseTagMixinOptions, IApiDeclaredItemOptions, IApiTypeParameterListMixinOptions { typeTokenRange: IExcerptTokenRange; } export interface IApiTypeAliasJson extends IApiDeclaredItemJson, IApiTypeParameterListMixinJson { typeTokenRange: IExcerptTokenRange; } declare const ApiTypeAlias_base: typeof ApiDeclaredItem & (new (...args: any[]) => ApiReleaseTagMixin) & (new (...args: any[]) => ApiNameMixin) & (new (...args: any[]) => ApiTypeParameterListMixin); /** * Represents a TypeScript type alias declaration. * * @remarks * * This is part of the {@link ApiModel} hierarchy of classes, which are serializable representations of * API declarations. * * `ApiTypeAlias` represents a definition such as one of these examples: * * ```ts * // A union type: * export type Shape = Square | Triangle | Circle; * * // A generic type alias: * export type BoxedValue = { value: T }; * * export type BoxedArray = { array: T[] }; * * // A conditional type alias: * export type Boxed = T extends any[] ? BoxedArray : BoxedValue; * * ``` * * @public */ export declare class ApiTypeAlias extends ApiTypeAlias_base { /** * An {@link Excerpt} that describes the type of the alias. * * @remarks * In the example below, the `typeExcerpt` would correspond to the subexpression * `T extends any[] ? BoxedArray : BoxedValue;`: * * ```ts * export type Boxed = T extends any[] ? BoxedArray : BoxedValue; * ``` */ readonly typeExcerpt: Excerpt; constructor(options: IApiTypeAliasOptions); /** @override */ static onDeserializeInto(options: Partial, context: DeserializerContext, jsonObject: IApiTypeAliasJson): void; static getContainerKey(name: string): string; /** @override */ get kind(): ApiItemKind; /** @override */ get containerKey(): string; /** @override */ serializeInto(jsonObject: Partial): void; /** @beta @override */ buildCanonicalReference(): DeclarationReference; } export {}; //# sourceMappingURL=ApiTypeAlias.d.ts.map