import { BreakpointObserver } from '@angular/cdk/layout';
import { EventEmitter, Injector, OnChanges, SimpleChanges } from '@angular/core';
import { FormControl, FormGroup } from '@angular/forms';
import { NgDocProvidedTypeControl } from '@ng-doc/app/interfaces';
import { NgDocPlaygroundContent, NgDocPlaygroundProperties } from '@ng-doc/core/interfaces';
import { Observable } from 'rxjs';
import { NgDocPlaygroundForm } from '../playground-form';
import { NgDocPlaygroundPropertyControl } from '../playground-property-control';
import * as i0 from "@angular/core";
export declare class NgDocPlaygroundPropertiesComponent<P extends NgDocPlaygroundProperties, C extends Record<string, NgDocPlaygroundContent>> implements OnChanges {
    protected readonly breakpointObserver: BreakpointObserver;
    private injector;
    form: FormGroup<NgDocPlaygroundForm>;
    properties?: P;
    ignoreInputs?: string[];
    dynamicContent?: C;
    defaultValues?: Record<string, unknown>;
    hideSidePanel: boolean;
    recreateDemo: boolean;
    showResetButton: boolean;
    recreateDemoChange: EventEmitter<boolean>;
    resetForm: EventEmitter<void>;
    readonly breakpoints: string[];
    readonly observer: Observable<boolean>;
    protected propertyControls: NgDocPlaygroundPropertyControl[];
    protected contentTypeControl?: NgDocProvidedTypeControl;
    constructor(breakpointObserver: BreakpointObserver, injector: Injector);
    ngOnChanges({ properties }: SimpleChanges): void;
    getFormControl(controlType: keyof typeof this.form.controls, key: string): FormControl;
    private getTypeControl;
    private getControlForType;
    private getControlForTypeAlias;
    static ɵfac: i0.ɵɵFactoryDeclaration<NgDocPlaygroundPropertiesComponent<any, any>, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NgDocPlaygroundPropertiesComponent<any, any>, "ng-doc-playground-properties", never, { "form": { "alias": "form"; "required": false; }; "properties": { "alias": "properties"; "required": false; }; "ignoreInputs": { "alias": "ignoreInputs"; "required": false; }; "dynamicContent": { "alias": "dynamicContent"; "required": false; }; "defaultValues": { "alias": "defaultValues"; "required": false; }; "hideSidePanel": { "alias": "hideSidePanel"; "required": false; }; "recreateDemo": { "alias": "recreateDemo"; "required": false; }; "showResetButton": { "alias": "showResetButton"; "required": false; }; }, { "recreateDemoChange": "recreateDemoChange"; "resetForm": "resetForm"; }, never, ["*"], true, never>;
}
