import { PropertyValues, HTMLTemplateResult } from "lit"; import { Decision, DecisionOptions } from "../../models/decisions/decision"; import { VerificationGridComponent, VerificationGridInjector } from "../verification-grid/verification-grid"; import { ClassificationComponent } from "./classification/classification"; import { VerificationComponent } from "./verification/verification"; import { KeyboardShortcut } from "../../templates/keyboardShortcut"; import { SubjectWrapper } from "../../models/subject"; import { Constructor } from "../../helpers/types/advancedTypes"; export interface DecisionModels { [DecisionOptions.TRUE]: T; [DecisionOptions.FALSE]: T; [DecisionOptions.UNSURE]: T; [DecisionOptions.SKIP]: T; } export type DecisionEvent = CustomEvent; export type DecisionComponentUnion = DecisionComponent | VerificationComponent | ClassificationComponent; interface DecisionContent { value: Decision[]; } export type WhenPredicate = (subject: SubjectWrapper | null) => boolean; declare const DecisionComponent_base: import("../../helpers/types/mixins").Component & { tagName: string; }; /** * @description * A common abstract decision component that can be implemented by different * types of decisions. * e.g. a verification decision or a classification decision * * @event decision */ export declare abstract class DecisionComponent extends DecisionComponent_base { static styles: import("lit").CSSResult[]; static readonly decisionEventName = "decision"; protected abstract handleShortcutKey(event: KeyboardEvent): void; protected abstract isShortcutKey(event: KeyboardEvent): boolean; protected injector: VerificationGridInjector; /** Disables the decision button and prevents decision events from firing */ disabled: boolean; when: WhenPredicate; /** * Toggles the decision button in and out of mobile compatibility * when decision buttons are rendered in a mobile context, they should be * larger, and without shortcut keys */ isMobile: boolean; verificationGrid?: VerificationGridComponent; abstract get decisionConstructor(): Constructor; private shouldEmitNext; private keyboardHeldDown; private readonly keyUpHandler; private readonly keyDownHandler; disconnectedCallback(): void; willUpdate(change: PropertyValues): void; shortcutKeys(): KeyboardShortcut[]; protected emitDecision(value: Decision[]): void; private handleKeyUp; private handleKeyDown; abstract render(): HTMLTemplateResult; } declare global { interface HTMLElementTagNameMap { "oe-decision": DecisionComponent; } } export {};