import { output } from 'zod/v4';
import { AuthorizationResult } from '../types/state/authorization.interface';
export interface AuthorizationProviderExecuteOptions<T extends BaseAuthorizationProviderInput = BaseAuthorizationProviderInput> {
    data: T['data'] | undefined;
}
export declare const baseAuthorizationProviderInputSchema: import("zod/v4").ZodObject<{
    type: import("zod/v4").ZodString;
    data: import("zod/v4").ZodUnknown;
}, import("zod/v4/core").$strip>;
export type BaseAuthorizationProviderInput = output<typeof baseAuthorizationProviderInputSchema>;
export declare abstract class AuthorizationProvider<T extends BaseAuthorizationProviderInput = BaseAuthorizationProviderInput> {
    private hydrator;
    constructor(hydrator: (data: string) => string);
    hydrate(data: string): string;
    abstract execute(options: AuthorizationProviderExecuteOptions<T>): Promise<AuthorizationResult>;
}
//# sourceMappingURL=authorization-provider.d.ts.map