import { IMessageBusTopicSubscription } from "./Messaging"; export declare abstract class ReplaceToken { abstract readonly prefixToken: string; } export declare abstract class TokenDefinition extends ReplaceToken { cast(value: any): TokenValueType; dummy?: TokenValueType; } type PropType = TObj[TProp]; export declare class TokenValue> { private definition; token: string; value: PropType; onChanged?: IMessageBusTopicSubscription>; constructor(definition: new () => TDefinition, token: string, // full token mtaching like CurrentTerm.termSetId=c43809d8-0691-490e-8316-24b912e4aa04 value: PropType, onChanged?: IMessageBusTopicSubscription>); isType(target: new () => TokenDefinition): boolean; private _definitionInstance; } export interface TokenManifestConfiguration { prefixTokens: string[]; } export interface TokenRegistration { name: string; description?: string; } export interface ITokenRegistrationApi { register(tokens: TokenRegistration[]): void; getTokens(): TokenRegistration[]; } export interface ITokenProvider { resolve>(token: string): TokenValue | Promise>; } export interface ITokenProviderRegistration { register(registration: TokenProviderRegistration): void; getProviderByToken(token: string): Promise ITokenProvider>; } export declare class TokenProviderRegistration { tokens: Array TokenDefinition>; provider: new () => ITokenProvider; constructor(tokens: Array TokenDefinition>, provider: new () => ITokenProvider); } declare module "./Extends" { interface IOmniaFxApi { tokens: { registrations: Promise; providers: Promise; }; } interface IOmniaFxApiManifest { tokens: { registrations: ApiPath; providers: IExtendApiManifestWithConfiguration; }; } } export {};