import type { GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
import type { SignalFormat, SignalFormatJson } from "./signal_format_pb";
import type { Message } from "@bufbuild/protobuf";
/**
 * Describes the file mochabugapis/adapt/graph/signal_descriptor.proto.
 */
export declare const file_mochabugapis_adapt_graph_signal_descriptor: GenFile;
/**
 * SignalDescriptor defines the complete specification of a signal, including its identity
 * and data format, without containing the actual signal data.
 *
 * A signal descriptor represents what a signal IS - its name, documentation, and the
 * single, specific format it produces. This is distinct from SignalBinding, which
 * represents what formats a binding point ACCEPTS.
 *
 * @generated from message mochabugapis.adapt.graph.SignalDescriptor
 */
export type SignalDescriptor = Message<"mochabugapis.adapt.graph.SignalDescriptor"> & {
    /**
     * Identifier for the signal, following ECMAScript identifier naming conventions.
     * Must be a valid JavaScript/TypeScript identifier to ensure compatibility with
     * code generation and scripting environments.
     *
     * Pattern: Must start with letter, $, or _, followed by letters, digits, $, or _
     * Length: 1-50 characters
     *
     * Examples: "temperature", "user_id", "$internal", "_privateSignal"
     *
     * @generated from field: string name = 1;
     */
    name: string;
    /**
     * Human-readable label for the signal, suitable for display in user interfaces.
     * Should be brief and descriptive.
     *
     * Length: Up to 250 characters
     *
     * Examples: "Room Temperature", "User ID", "Processing Status"
     *
     * @generated from field: optional string label = 2;
     */
    label?: string;
    /**
     * Detailed description of the signal's purpose, behavior, and usage.
     * Should provide context for developers and users.
     *
     * Length: Up to 1000 characters
     *
     * May include:
     * - What the signal represents
     * - When it's emitted
     * - Expected value ranges or formats
     * - Usage examples or constraints
     *
     * @generated from field: optional string description = 3;
     */
    description?: string;
    /**
     * Indicates whether this signal must be provided.
     *
     * When false or unset: Signal is required and must be present
     * When true: Signal is optional and may be omitted
     *
     * Optional signals provide flexibility in graph construction, allowing
     * vertices to function with or without certain inputs.
     *
     * @generated from field: optional bool optional = 4;
     */
    optional?: boolean;
    /**
     * List of formats that this signal produces. The signal will produce any signal whose
     * format matches at least one entry in this list.
     *
     * Validation: At least one format must be specified. Maximum 50 formats to prevent
     * overly complicated signals and ensure reasonable validation performance.
     *
     * @generated from field: repeated mochabugapis.adapt.graph.SignalFormat formats = 5;
     */
    formats: SignalFormat[];
};
/**
 * SignalDescriptor defines the complete specification of a signal, including its identity
 * and data format, without containing the actual signal data.
 *
 * A signal descriptor represents what a signal IS - its name, documentation, and the
 * single, specific format it produces. This is distinct from SignalBinding, which
 * represents what formats a binding point ACCEPTS.
 *
 * @generated from message mochabugapis.adapt.graph.SignalDescriptor
 */
export type SignalDescriptorJson = {
    /**
     * Identifier for the signal, following ECMAScript identifier naming conventions.
     * Must be a valid JavaScript/TypeScript identifier to ensure compatibility with
     * code generation and scripting environments.
     *
     * Pattern: Must start with letter, $, or _, followed by letters, digits, $, or _
     * Length: 1-50 characters
     *
     * Examples: "temperature", "user_id", "$internal", "_privateSignal"
     *
     * @generated from field: string name = 1;
     */
    name?: string;
    /**
     * Human-readable label for the signal, suitable for display in user interfaces.
     * Should be brief and descriptive.
     *
     * Length: Up to 250 characters
     *
     * Examples: "Room Temperature", "User ID", "Processing Status"
     *
     * @generated from field: optional string label = 2;
     */
    label?: string;
    /**
     * Detailed description of the signal's purpose, behavior, and usage.
     * Should provide context for developers and users.
     *
     * Length: Up to 1000 characters
     *
     * May include:
     * - What the signal represents
     * - When it's emitted
     * - Expected value ranges or formats
     * - Usage examples or constraints
     *
     * @generated from field: optional string description = 3;
     */
    description?: string;
    /**
     * Indicates whether this signal must be provided.
     *
     * When false or unset: Signal is required and must be present
     * When true: Signal is optional and may be omitted
     *
     * Optional signals provide flexibility in graph construction, allowing
     * vertices to function with or without certain inputs.
     *
     * @generated from field: optional bool optional = 4;
     */
    optional?: boolean;
    /**
     * List of formats that this signal produces. The signal will produce any signal whose
     * format matches at least one entry in this list.
     *
     * Validation: At least one format must be specified. Maximum 50 formats to prevent
     * overly complicated signals and ensure reasonable validation performance.
     *
     * @generated from field: repeated mochabugapis.adapt.graph.SignalFormat formats = 5;
     */
    formats?: SignalFormatJson[];
};
/**
 * Describes the message mochabugapis.adapt.graph.SignalDescriptor.
 * Use `create(SignalDescriptorSchema)` to create a new message.
 */
export declare const SignalDescriptorSchema: GenMessage<SignalDescriptor, {
    jsonType: SignalDescriptorJson;
}>;
//# sourceMappingURL=signal_descriptor_pb.d.ts.map