export type SerializableProperties<T extends AbstractOperation> = {
    [K in keyof T as T[K] extends string ? K : never]: T[K] extends string ? T[K] : never;
};
export type SerializableOperation<T extends AbstractOperation = any> = {
    operationName: string;
} & {
    [K in keyof T as T[K] extends string ? K : never]: T[K] extends string ? T[K] : never;
};
export declare abstract class AbstractOperation {
    abstract getSerializableProperties(): string[];
    abstract getTextProperties(): string[];
}
