import { EventEmitter, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core'; import { FormControl } from '@angular/forms'; import { Router } from '@angular/router'; import { CdkDragDrop } from '@angular/cdk/drag-drop'; import { UserService } from '../services/user.service'; import { APIService } from '../services/api.service'; import { DeviceService } from '../services/device.service'; import { Buttontemplate } from '../classes/device'; import * as i0 from "@angular/core"; export type LineKeyAssignment = 'primary' | 'open' | 'monitored' | 'speedDial'; export interface LineKeyRow { order: number; assignment: LineKeyAssignment; label: string; destination: string; locked: boolean; index?: number; callPickup?: boolean; dnWithRoutePartition?: string; } export declare class LineKeyConfigComponent implements OnInit, OnChanges, OnDestroy { userService: UserService; private apiService; private readonly deviceService; private readonly router; goBack: EventEmitter; token: string; host: string; siteId: string; userId: string; deviceType: string; buttonTemplate: string; private readonly destroy$; dataPending: boolean; device: any; hasChanges: boolean; lineSlots: Buttontemplate | null; readonly LINE_KEY_COUNT = 10; readonly HALF: number; readonly ASSIGNMENT_OPTIONS: Array<{ value: LineKeyAssignment; label: string; }>; lineKeyTemplates: []; readonly selectedTemplate: FormControl; readonly previewLayout: FormControl; leftKeys: LineKeyRow[]; rightKeys: LineKeyRow[]; private initialButtonTemplate; private initialSpeedDialLines; private initialBlfLines; get deviceModel(): string; constructor(userService: UserService, apiService: APIService, deviceService: DeviceService, router: Router); ngOnInit(): void; ngOnChanges(changes: SimpleChanges): void; private resetForNewButtonTemplate; private fetchSiteDirectoryNumbers; private loadDevice; private fetchButtonTemplateSlots; private getRowsByAssignment; private getTemplateSlots; private computeTypeIndex; private captureSpeedDialBaseline; private getSpeedDialLinesPayload; private captureBlfBaseline; private toBlfLine; private getBlfLinesPayload; private applyButtonTemplateSlots; private applyDialAssignments; private applyDialItem; applyTemplate(): void; onFieldChange(): void; onAssignmentChange(row: LineKeyRow): void; private relocateRowForAssignment; private readonly SEGREGATED_ASSIGNMENTS; private isConflictingAssignment; onDrop(event: CdkDragDrop): void; onGoBack(): void; onCancel(): void; onSave(): void; ngOnDestroy(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; }