UNPKG

@ts-for-gir/lib

Version:

Typescript .d.ts generator from GIR for gjs

63 lines (62 loc) 2.72 kB
import { FormatGenerator } from "../generators/index.js"; import { GirVisitor } from "../visitor.js"; import { IntrospectedNamespace } from "./namespace.js"; import type { IntrospectedBaseClass } from "./nodes.js"; import type { OptionsLoad } from "../types/index.js"; export interface Metadata { deprecated?: boolean; deprecatedVersion?: string; deprecatedDoc?: string; introducedVersion?: string; } export interface BaseOptions { isPrivate?: boolean; isIntrospectable?: boolean; doc?: string | null; } export type Options<T> = BaseOptions & T; export type AnyIntrospectedType = IntrospectedBase<any>; export declare abstract class IntrospectedBase<Parent extends IntrospectedNamespace | AnyIntrospectedType | null> { name: string; doc?: string | null; metadata?: Metadata; deprecated?: boolean; resolve_names: string[]; private _emit; private _commentWarning?; private _isPrivate; private _isIntrospectable; private _parent; constructor(name: string, parent: Parent, options?: BaseOptions); get parent(): Parent; /** * Set a warning to be emitted with this node. Often used to note type * conflicts or potential differences from GJS code. * * @param warning */ setWarning(warning: string): void; getWarning(): string | undefined; abstract get namespace(): IntrospectedNamespace; get isIntrospectable(): boolean; get isPrivate(): boolean; setPrivate(priv: boolean): void; noEmit(): void; get emit(): boolean; protected _copyBaseProperties(from: this): this; abstract copy(options?: { parent?: Parent; }): IntrospectedBase<Parent>; abstract accept(visitor: GirVisitor): IntrospectedBase<Parent>; static fromXML(element: Record<string, any>, parent: IntrospectedNamespace | AnyIntrospectedType, options: OptionsLoad): AnyIntrospectedType | null; abstract asString<T extends FormatGenerator<unknown>>(generator: T): (T extends FormatGenerator<infer R> ? R : never) | null; abstract asString<T extends FormatGenerator<unknown>>(generator: T): unknown; } export declare abstract class IntrospectedNamespaceMember extends IntrospectedBase<IntrospectedNamespace> { constructor(name: string, namespace: IntrospectedNamespace, options?: BaseOptions); get namespace(): IntrospectedNamespace; static fromXML(element: Record<string, any>, parent: IntrospectedNamespace, options: OptionsLoad): IntrospectedNamespaceMember | null; } export declare abstract class IntrospectedClassMember<Parent extends IntrospectedBaseClass | null = IntrospectedBaseClass | null> extends IntrospectedBase<Parent> { get namespace(): IntrospectedNamespace; }