import type { PromisableArray } from '@ariestools/sdk';
import type { XyoConnection } from '@xyo-network/xl1-protocol/protocol-lib';
/** Configuration for a base wrapper, providing a connection and a value to wrap. */
export interface BaseWrapperConfig<T> {
    provider: XyoConnection;
    value: T;
}
/** Abstract base class for protocol value wrappers with validation support. */
export declare class BaseWrapper<T, C extends BaseWrapperConfig<T> = BaseWrapperConfig<T>> {
    protected readonly config: Partial<C>;
    protected readonly value: T;
    protected constructor(value: T, config?: Partial<C>);
    get provider(): XyoConnection | undefined;
    static create<T, C extends BaseWrapperConfig<T> = BaseWrapperConfig<T>>(value: T, config?: Partial<C>): Promise<BaseWrapper<T, C>>;
    static validateConfig(_config: unknown): PromisableArray<Error>;
    static validateValue(_value: unknown): PromisableArray<Error>;
    validate(): PromisableArray<Error>;
}
//# sourceMappingURL=Base.d.ts.map