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> {
    /** Backing provider used to read or mutate protocol state. */
    provider: XyoConnection;
    /** Underlying protocol value wrapped by this instance. */
    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>);
    /** Returns the provider result exposed by this provider. */
    get provider(): XyoConnection | undefined;
    /** Returns the create result exposed by this provider. */
    static create<T, C extends BaseWrapperConfig<T> = BaseWrapperConfig<T>>(value: T, config?: Partial<C>): Promise<BaseWrapper<T, C>>;
    /** Validates config and returns the validation result. */
    static validateConfig(_config: unknown): PromisableArray<Error>;
    /** Validates value and returns the validation result. */
    static validateValue(_value: unknown): PromisableArray<Error>;
    /** Validates  and returns the validation result. */
    validate(): PromisableArray<Error>;
}
//# sourceMappingURL=Base.d.ts.map