import type { OnChanges, OnInit } from '@angular/core';
import { EventEmitter, TemplateRef } from '@angular/core';
import { Subject } from 'rxjs';
import * as i0 from "@angular/core";
export type TuiDocumentationPropertyType = 'input-output' | 'input' | 'output' | null;
export declare class TuiDocDocumentationPropertyConnector<T> implements OnInit, OnChanges {
    private readonly locationRef;
    private readonly activatedRoute;
    private readonly urlSerializer;
    private readonly urlStateHandler;
    private readonly alerts;
    documentationPropertyName: string;
    documentationPropertyMode: TuiDocumentationPropertyType;
    documentationPropertyType: string;
    documentationPropertyValue: T;
    documentationPropertyDeprecated: boolean;
    documentationPropertyValues: readonly T[] | null;
    readonly documentationPropertyValueChange: EventEmitter<T>;
    readonly changed$: Subject<void>;
    readonly emits: import("@angular/core").WritableSignal<number>;
    readonly template: TemplateRef<any>;
    get attrName(): string;
    get shouldShowValues(): boolean;
    get hasItems(): boolean;
    ngOnInit(): void;
    ngOnChanges(): void;
    onValueChange(value: T): void;
    emitEvent(event: unknown): void;
    private parseParams;
    private setQueryParam;
    static ɵfac: i0.ɵɵFactoryDeclaration<TuiDocDocumentationPropertyConnector<any>, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<TuiDocDocumentationPropertyConnector<any>, "ng-template[documentationPropertyName]", ["documentationProperty"], { "documentationPropertyName": { "alias": "documentationPropertyName"; "required": false; }; "documentationPropertyMode": { "alias": "documentationPropertyMode"; "required": false; }; "documentationPropertyType": { "alias": "documentationPropertyType"; "required": false; }; "documentationPropertyValue": { "alias": "documentationPropertyValue"; "required": false; }; "documentationPropertyDeprecated": { "alias": "documentationPropertyDeprecated"; "required": false; }; "documentationPropertyValues": { "alias": "documentationPropertyValues"; "required": false; }; }, { "documentationPropertyValueChange": "documentationPropertyValueChange"; }, never, never, true, never>;
}
