import { PropertyValues, PropertyValuesCallback } from '@signalk/server-api';
import { Duplex } from 'stream';
import { SignalKMessageHub, WithConfig } from './app';
import { WithWrappedEmitter } from './events';
interface PipeElementConfig {
    type: string;
    options?: {
        providerId: string;
        emitPropertyValue: (name: string, value: any) => void;
        onPropertyValues: (name: string, cb: PropertyValuesCallback) => void;
        app: unknown;
    };
    enabled?: boolean;
    optionMappings: any;
}
interface PipedProviderConfig {
    enabled: boolean;
    id: string;
    pipeElements: PipeElementConfig[];
}
declare class PipedProvider {
}
export declare function pipedProviders(app: SignalKMessageHub & WithConfig & WithWrappedEmitter & {
    propertyValues: PropertyValues;
    setProviderError: (providerId: string, msg: string) => void;
    providers: any[];
}): {
    start: () => PipedProvider[];
    createPipedProvider: (providerConfig: PipedProviderConfig) => {
        id: string;
        pipeElements: Duplex[];
    };
    stopProvider: (id: string) => void;
    restartProvider: (id: string) => void;
};
export {};
//# sourceMappingURL=pipedproviders.d.ts.map