import { planSafeSchematicRegion, type SchematicRegionPreference } from './schematic-safe-region.js'; import type { WorkflowBlockInput, WorkflowDeviceItem } from './types.js'; export interface TwoPinMap { p1: string; p2: string; } export interface Ne555TimerPinMap { gnd: string; trig: string; out: string; reset: string; ctrl: string; thresh: string; disch: string; vcc: string; } export interface Ne555AstableDevices { timer: WorkflowDeviceItem; resistor: WorkflowDeviceItem; timingCapacitor: WorkflowDeviceItem; bypassCapacitor: WorkflowDeviceItem; led: WorkflowDeviceItem; r1?: WorkflowDeviceItem; r2?: WorkflowDeviceItem; rLed?: WorkflowDeviceItem; cTiming?: WorkflowDeviceItem; cCtrl?: WorkflowDeviceItem; cDecouple?: WorkflowDeviceItem; } export interface Ne555AstableRefs { timer: string; r1: string; r2: string; cTiming: string; cCtrl: string; cDecouple: string; rLed: string; led: string; } export interface Ne555AstableNets { vcc: string; gnd: string; timing: string; discharge: string; control: string; output: string; ledAnode: string; } export interface Ne555AstableValues { supplyVoltage: number; r1Ohms: number; r2Ohms: number; timingCapacitanceUf: number; controlCapacitanceNf: number; decouplingCapacitanceNf: number; ledSeriesOhms: number; } export interface Ne555AstablePinMaps { timer: Ne555TimerPinMap; resistor: TwoPinMap; capacitor: TwoPinMap; led: { anode: string; cathode: string; }; } export interface Ne555AstableTemplateInput { projectId: string; mode?: 'preview' | 'apply'; devices: Ne555AstableDevices; anchor?: { x: number; y: number; }; sheetInfo?: unknown; preferredRegion?: SchematicRegionPreference; margin?: number; createNetPorts?: boolean; createWireStubs?: boolean; refs?: Partial; nets?: Partial; values?: Partial; pinMaps?: Partial<{ timer: Partial; resistor: Partial; capacitor: Partial; led: Partial<{ anode: string; cathode: string; }>; }>; } export interface Ne555AstableTemplatePlan { workflowInput: WorkflowBlockInput; safeRegion: ReturnType; refs: Ne555AstableRefs; nets: Ne555AstableNets; values: Ne555AstableValues; pinMaps: Ne555AstablePinMaps; calculated: { frequencyHz: number; periodSeconds: number; highTimeSeconds: number; lowTimeSeconds: number; dutyCyclePercent: number; }; designNotes: string[]; componentCount: number; } export declare const NE555_ASTABLE_CONTENT: { readonly width: 620; readonly height: 360; }; export declare function calculateNe555Astable(values: Ne555AstableValues): { frequencyHz: number; periodSeconds: number; highTimeSeconds: number; lowTimeSeconds: number; dutyCyclePercent: number; }; export declare function buildNe555AstableTemplate(input: Ne555AstableTemplateInput): Ne555AstableTemplatePlan;