.gitignore added
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / table / node_modules / ajv / dist / compile / codegen / scope.d.ts
diff --git a/.config/coc/extensions/node_modules/coc-prettier/node_modules/table/node_modules/ajv/dist/compile/codegen/scope.d.ts b/.config/coc/extensions/node_modules/coc-prettier/node_modules/table/node_modules/ajv/dist/compile/codegen/scope.d.ts
new file mode 100644 (file)
index 0000000..3c351bb
--- /dev/null
@@ -0,0 +1,79 @@
+import { Code, Name } from "./code";
+interface NameGroup {
+    prefix: string;
+    index: number;
+}
+export interface NameValue {
+    ref: ValueReference;
+    key?: unknown;
+    code?: Code;
+}
+export declare type ValueReference = unknown;
+interface ScopeOptions {
+    prefixes?: Set<string>;
+    parent?: Scope;
+}
+interface ValueScopeOptions extends ScopeOptions {
+    scope: ScopeStore;
+    es5?: boolean;
+    lines?: boolean;
+}
+export declare type ScopeStore = Record<string, ValueReference[] | undefined>;
+declare type ScopeValues = {
+    [Prefix in string]?: Map<unknown, ValueScopeName>;
+};
+export declare type ScopeValueSets = {
+    [Prefix in string]?: Set<ValueScopeName>;
+};
+export declare enum UsedValueState {
+    Started = 0,
+    Completed = 1
+}
+export declare type UsedScopeValues = {
+    [Prefix in string]?: Map<ValueScopeName, UsedValueState | undefined>;
+};
+export declare const varKinds: {
+    const: Name;
+    let: Name;
+    var: Name;
+};
+export declare class Scope {
+    protected readonly _names: {
+        [Prefix in string]?: NameGroup;
+    };
+    protected readonly _prefixes?: Set<string>;
+    protected readonly _parent?: Scope;
+    constructor({ prefixes, parent }?: ScopeOptions);
+    toName(nameOrPrefix: Name | string): Name;
+    name(prefix: string): Name;
+    protected _newName(prefix: string): string;
+    private _nameGroup;
+}
+interface ScopePath {
+    property: string;
+    itemIndex: number;
+}
+export declare class ValueScopeName extends Name {
+    readonly prefix: string;
+    value?: NameValue;
+    scopePath?: Code;
+    constructor(prefix: string, nameStr: string);
+    setValue(value: NameValue, { property, itemIndex }: ScopePath): void;
+}
+interface VSOptions extends ValueScopeOptions {
+    _n: Code;
+}
+export declare class ValueScope extends Scope {
+    protected readonly _values: ScopeValues;
+    protected readonly _scope: ScopeStore;
+    readonly opts: VSOptions;
+    constructor(opts: ValueScopeOptions);
+    get(): ScopeStore;
+    name(prefix: string): ValueScopeName;
+    value(nameOrPrefix: ValueScopeName | string, value: NameValue): ValueScopeName;
+    getValue(prefix: string, keyOrRef: unknown): ValueScopeName | undefined;
+    scopeRefs(scopeName: Name, values?: ScopeValues | ScopeValueSets): Code;
+    scopeCode(values?: ScopeValues | ScopeValueSets, usedValues?: UsedScopeValues, getCode?: (n: ValueScopeName) => Code | undefined): Code;
+    private _reduceValues;
+}
+export {};