/// <reference path="../globals.d.ts" />
/**
 * Centralizes all PowerPages platform-specific DOM conventions.
 *
 * When Microsoft changes how PowerPages renders controls, this is the only
 * file that needs to be updated. Consumers can also import these to write
 * their own selectors that stay in sync with the library's assumptions.
 */
/** CSS selector strings for locating PowerPages-rendered DOM elements */
export declare const Selectors: {
    /** Label element for a given field: `#${elementId}_label` */
    label: (elementId: string) => string;
    /** Attribute selector for the date value node inside a date control */
    dateFormatNode: string;
    /** Attribute selector for a section or tab by logical name */
    sectionOrTab: (name: string) => string;
    /** ID selector for a control by its logical name */
    controlById: (id: string) => string;
    /**
     * Selector for detecting boolean radio direct children of a container.
     * Used during init to determine if a field is a boolean radio group.
     */
    booleanRadioChildren: (parentId: string) => string;
    /** Selector for the truthy (Yes) radio option in a boolean radio group */
    truthyRadio: string;
    /** Selector for the falsy (No) radio option in a boolean radio group */
    falsyRadio: string;
};
/** Predicate functions for detecting PowerPages-specific DOM characteristics */
export declare const Detect: {
    /**
     * Returns true if an element ID matches the PCF control container naming convention.
     * PowerPages prefixes PCF wrapper element IDs with "pcfcontrol" (case-insensitive).
     */
    isPCFControl: (id: string | undefined) => boolean;
    /**
     * Returns true if the element is a date input in a PowerPages form.
     * PowerPages sets `data-type="date"` on date input elements.
     */
    isDateInput: (element: HTMLElement) => boolean;
    /**
     * Returns true if the element's parent hosts a PCF-based multiselect control.
     * PowerPages renders multiselect option sets via a PCF whose container class includes "multiselect".
     */
    isMultiSelect: (element: HTMLElement) => boolean;
};
