export interface ViewMatchRule {
    stateShape?: {
        field: string;
        type: 'array' | 'object' | 'map' | 'set' | 'primitive';
        elementShape?: string;
    };
    dataType?: string;
    componentClass?: string;
    hasChildren?: boolean;
    hasDom?: boolean;
    priority: number;
}
export interface ViewTypeRegistration {
    namespace: string;
    name: string;
    tag: string;
    matches: ViewMatchRule[];
}
export interface ActorViewProfile {
    componentClass?: string;
    hasChildren?: boolean;
    hasDom?: boolean;
    state?: Record<string, unknown>;
    stateSchema?: Record<string, unknown>;
}
export declare class ViewTypeRegistry {
    private static readonly _entries;
    static register(entry: ViewTypeRegistration): void;
    static list(): ViewTypeRegistration[];
    static match(profile: ActorViewProfile): ViewTypeRegistration[];
    private static _scoreRule;
    private static _matchesStateType;
}
//# sourceMappingURL=ViewTypeRegistry.d.ts.map