/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import type { ClientNode } from "#node/ClientNode.js";
import type { ServerNode } from "#node/ServerNode.js";
import { NodeSession } from "@matter/protocol";
import { Discovery } from "./Discovery.js";
import { ParallelPaseDiscovery } from "./ParallelPaseDiscovery.js";
/**
 * Discovers commissionable devices and establishes a PASE session with the first one that responds.
 *
 * All discovered candidates attempt PASE in parallel; the first to succeed wins.  Discovery stops at PASE
 * time and the abort signal fires to cancel remaining in-flight PASE attempts.  Any candidate that
 * establishes PASE after the winner cleans up its session cleanly.  {@link onComplete} returns the winning
 * {@link NodeSession}.
 *
 * This is the discovery counterpart to {@link CommissioningDiscovery}: whereas that class performs a full
 * commissioning flow, this class stops at PASE and returns the raw session for callers that manage their own
 * commissioning (e.g. split-commissioning scenarios or raw PASE channel establishment for chip-testing).
 *
 * Default discovery timeout is 60 seconds when not specified by the caller.
 */
export declare class PaseDiscovery extends ParallelPaseDiscovery<NodeSession> {
    #private;
    constructor(owner: ServerNode, options: PaseDiscovery.Options);
    protected get cleanupLabel(): string;
    protected get failureMessage(): string;
    protected onDiscovered(node: ClientNode): void;
}
export declare namespace PaseDiscovery {
    type Options = Discovery.InstanceOptions & {
        /** PASE passcode for the device. */
        passcode: number;
    };
}
//# sourceMappingURL=PaseDiscovery.d.ts.map