import type { StylableMeta } from '../stylable-meta';
import * as STCustomState from './st-custom-state';
import * as CSSClass from './css-class';
import { ImmutableSelectorList } from '@tokey/css-selector-parser';
export declare const diagnostics: {
    GLOBAL_MAPPING_LIMITATION: {
        (): import("../diagnostics").DiagnosticBase;
        code: string;
        severity: import("../diagnostics").DiagnosticSeverity;
    };
    UNSUPPORTED_TOP_DEF: {
        (): import("../diagnostics").DiagnosticBase;
        code: string;
        severity: import("../diagnostics").DiagnosticSeverity;
    };
    MISSING_EXTEND: {
        (): import("../diagnostics").DiagnosticBase;
        code: string;
        severity: import("../diagnostics").DiagnosticSeverity;
    };
    OVERRIDE_IMPORTED_CLASS: {
        (): import("../diagnostics").DiagnosticBase;
        code: string;
        severity: import("../diagnostics").DiagnosticSeverity;
    };
    STATE_OUT_OF_CONTEXT: {
        (): import("../diagnostics").DiagnosticBase;
        code: string;
        severity: import("../diagnostics").DiagnosticSeverity;
    };
    MISSING_MAPPED_SELECTOR: {
        (): import("../diagnostics").DiagnosticBase;
        code: string;
        severity: import("../diagnostics").DiagnosticSeverity;
    };
    MULTI_MAPPED_SELECTOR: {
        (): import("../diagnostics").DiagnosticBase;
        code: string;
        severity: import("../diagnostics").DiagnosticSeverity;
    };
    ELEMENT_OUT_OF_CONTEXT: {
        (): import("../diagnostics").DiagnosticBase;
        code: string;
        severity: import("../diagnostics").DiagnosticSeverity;
    };
    MISSING_MAPPING: {
        (): import("../diagnostics").DiagnosticBase;
        code: string;
        severity: import("../diagnostics").DiagnosticSeverity;
    };
    REDECLARE: {
        (type: string, src: string): import("../diagnostics").DiagnosticBase;
        code: string;
        severity: import("../diagnostics").DiagnosticSeverity;
    };
    INVALID_ST_DEF: {
        (params: string): import("../diagnostics").DiagnosticBase;
        code: string;
        severity: import("../diagnostics").DiagnosticSeverity;
    };
    MAPPING_UNSUPPORTED_NESTING: {
        (): import("../diagnostics").DiagnosticBase;
        code: string;
        severity: import("../diagnostics").DiagnosticSeverity;
    };
    UNEXPECTED_EXTRA_VALUE: {
        (extraValue: string): import("../diagnostics").DiagnosticBase;
        code: string;
        severity: import("../diagnostics").DiagnosticSeverity;
    };
    CLASS_OUT_OF_CONTEXT: {
        (): import("../diagnostics").DiagnosticBase;
        code: string;
        severity: import("../diagnostics").DiagnosticSeverity;
    };
};
export interface PartSymbol extends HasParts, STCustomState.HasStates {
    _kind: 'part';
    name: string;
    id: string;
    mapTo: ImmutableSelectorList | CSSClass.ClassSymbol;
}
export interface HasParts {
    '-st-parts': Record<string, PartSymbol>;
}
export declare const experimentalMsg = "[experimental feature] stylable structure (@st): API might change!";
export declare const hooks: import("./feature").FeatureHooks<import("./feature").NodeTypes>;
export declare function isStructureMode(meta: StylableMeta): boolean;
export declare function createPartSymbol(input: Partial<PartSymbol> & Pick<PartSymbol, 'name' | 'id' | 'mapTo'>): PartSymbol;
export declare function setPart(symbol: HasParts, parentId: string, partName: string, mapTo: PartSymbol['mapTo']): PartSymbol;
export declare function getParts(symbol: HasParts): Record<string, PartSymbol>;
export declare function getPart(symbol: HasParts, name: string): PartSymbol | undefined;
export declare function getPartNames(symbol: HasParts): string[];
//# sourceMappingURL=st-structure.d.ts.map