import type { Static } from '@sinclair/typebox';
import { StandardIdentity, Domain } from '../utils/2525.js';
export declare const AugmentedType: import("@sinclair/typebox").TObject<{
    cot: import("@sinclair/typebox").TString;
    desc: import("@sinclair/typebox").TString;
    full: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
    '2525b': import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
}>;
export declare const TypeFormat_COT: import("@sinclair/typebox").TObject<{
    cot: import("@sinclair/typebox").TString;
    desc: import("@sinclair/typebox").TString;
    full: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
}>;
export declare const TypeFormat_Weapon: import("@sinclair/typebox").TObject<{
    cot: import("@sinclair/typebox").TString;
    desc: import("@sinclair/typebox").TString;
}>;
export declare const TypeFormat_Relation: import("@sinclair/typebox").TObject<{
    cot: import("@sinclair/typebox").TString;
    desc: import("@sinclair/typebox").TString;
}>;
export declare const TypeFormat_Is: import("@sinclair/typebox").TObject<{
    what: import("@sinclair/typebox").TString;
    match: import("@sinclair/typebox").TString;
}>;
export declare const TypeFormat_How: import("@sinclair/typebox").TObject<{
    what: import("@sinclair/typebox").TString;
    value: import("@sinclair/typebox").TString;
}>;
export declare const TypeFormat: import("@sinclair/typebox").TObject<{
    types: import("@sinclair/typebox").TObject<{
        cot: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
            _attributes: import("@sinclair/typebox").TObject<{
                cot: import("@sinclair/typebox").TString;
                desc: import("@sinclair/typebox").TString;
                full: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
            }>;
        }>>;
        weapon: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
            _attributes: import("@sinclair/typebox").TObject<{
                cot: import("@sinclair/typebox").TString;
                desc: import("@sinclair/typebox").TString;
            }>;
        }>>;
        relation: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
            _attributes: import("@sinclair/typebox").TObject<{
                cot: import("@sinclair/typebox").TString;
                desc: import("@sinclair/typebox").TString;
            }>;
        }>>;
        is: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
            _attributes: import("@sinclair/typebox").TObject<{
                what: import("@sinclair/typebox").TString;
                match: import("@sinclair/typebox").TString;
            }>;
        }>>;
        how: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
            _attributes: import("@sinclair/typebox").TObject<{
                what: import("@sinclair/typebox").TString;
                value: import("@sinclair/typebox").TString;
            }>;
        }>>;
    }>;
}>;
export default class CoTTypes {
    cots: Map<string, Static<typeof TypeFormat_COT>>;
    weapons: Map<string, Static<typeof TypeFormat_Weapon>>;
    relations: Map<string, Static<typeof TypeFormat_Relation>>;
    is: Map<string, Static<typeof TypeFormat_Is>>;
    how: Map<string, Static<typeof TypeFormat_How>>;
    constructor(cots: Map<string, Static<typeof TypeFormat_COT>>, weapons: Map<string, Static<typeof TypeFormat_Weapon>>, relations: Map<string, Static<typeof TypeFormat_Relation>>, is: Map<string, Static<typeof TypeFormat_Is>>, how: Map<string, Static<typeof TypeFormat_How>>);
    static load(): Promise<CoTTypes>;
    types(si: StandardIdentity, opts?: {
        domain?: Domain;
    }): Set<Static<typeof AugmentedType>>;
}
